@microtronics/studio-cli 0.56.0 → 0.57.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/CHANGELOG.md CHANGED
@@ -1,13 +1,19 @@
1
1
  # Changelog
2
2
 
3
- ## 0.56.0 (2026-03-24)
3
+ ## 0.57.0 (2026-03-25)
4
4
 
5
5
  ### Features
6
6
 
7
- * add error handling for CLI task execution ([ef0dcf9](https://bitbucket.org/microtronics-core/vscode-studio/commits/ef0dcf90cea47447d4dbe2d83e29c3921a8dd6c9))
8
- * auto-install npm deps in pov/blo during `studio install` ([18bef6b](https://bitbucket.org/microtronics-core/vscode-studio/commits/18bef6b7df9649c7da9951a3f4ab32d48dfd3e79))
9
- * auto-link library blo/pov parts to project package.json ([8fe7829](https://bitbucket.org/microtronics-core/vscode-studio/commits/8fe78293b196da060da720c3c19723657f857cb9))
10
- * replace console log with logger instance ([441bfea](https://bitbucket.org/microtronics-core/vscode-studio/commits/441bfea9acd8b26d2ff09fe8c23668e974440812))
7
+ * add development flag to install function ([6358d43](https://bitbucket.org/microtronics-core/vscode-studio/commits/6358d430c15174ea07b169e3da3e27b8a2561bd8))
8
+
9
+ ## 0.56.0 (2026-03-24)
10
+
11
+ ### Features
12
+
13
+ * add error handling for CLI task execution ([ef0dcf9](https://bitbucket.org/microtronics-core/vscode-studio/commits/ef0dcf90cea47447d4dbe2d83e29c3921a8dd6c9))
14
+ * auto-install npm deps in pov/blo during `studio install` ([18bef6b](https://bitbucket.org/microtronics-core/vscode-studio/commits/18bef6b7df9649c7da9951a3f4ab32d48dfd3e79))
15
+ * auto-link library blo/pov parts to project package.json ([8fe7829](https://bitbucket.org/microtronics-core/vscode-studio/commits/8fe78293b196da060da720c3c19723657f857cb9))
16
+ * replace console log with logger instance ([441bfea](https://bitbucket.org/microtronics-core/vscode-studio/commits/441bfea9acd8b26d2ff09fe8c23668e974440812))
11
17
  * use `npm ci` instead of `npm install` for reproducible builds ([e7b6b16](https://bitbucket.org/microtronics-core/vscode-studio/commits/e7b6b1623a9f701d2687e92cfca89fe08ce3edc0))
12
18
 
13
19
  ## 0.55.0 (2026-03-24)
package/dist/main.js CHANGED
@@ -20,7 +20,7 @@ return ret;
20
20
  `,AA+=`return Asyncify.currData ? Asyncify.whenDone().then(onDone) : onDone(${kA});
21
21
  `,AA+=`}
22
22
  `,AA=`if (arguments.length !== ${eA.length}){ throw new Error(humanName + "Expected ${eA.length} closure arguments " + arguments.length + " given."); }
23
- ${AA}`,[eA,AA]}var ZB=C=>{try{return C()}catch(t){LA(t)}},Zg=C=>{if(C instanceof Mg||C=="unwind")return x;bQ(),C instanceof WebAssembly.RuntimeError&&WC()<=0&&Y("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 65536)"),d(1,C)},Tg=0,eg=()=>LI||Tg>0,QC=C=>{x=C,eg()||(Q.onExit?.(C),O=!0),d(C,new Mg(C))},BC=(C,t)=>{if(x=C,Wi(),eg()&&!t){var c=`program exited (with status: ${C}), but keepRuntimeAlive() is set (counter=${Tg}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`;s(c),Y(c)}QC(C)},jg=BC,ig=()=>{if(!eg())try{jg(x)}catch(C){Zg(C)}},A=C=>{if(O){Y("user callback triggered after runtime exited or application aborted. Ignoring.");return}try{C(),ig()}catch(t){Zg(t)}},I=C=>{K(!C.includes("j"),"i64 not permitted in function signatures when WASM_BIGINT is disabled");for(var t={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},c={parameters:[],results:C[0]=="v"?[]:[t[C[0]]]},N=1;N<C.length;++N)K(C[N]in t,"invalid signature char: "+C[N]),c.parameters.push(t[C[N]]);return c},i={instrumentWasmImports(C){var t=/^(invoke_.*|__asyncjs__.*)$/;for(let[c,N]of Object.entries(C))if(typeof N=="function"){let u=N.isAsync||t.test(c);C[c]=(...Z)=>{var V=i.state;try{return N(...Z)}finally{var P=V===i.State.Normal&&i.state===i.State.Disabled,W=c.startsWith("invoke_")&&!0;if(i.state!==V&&!u&&!P&&!W)throw new Error(`import ${c} was not in ASYNCIFY_IMPORTS, but changed the state`)}}}},instrumentWasmExports(C){var t={};for(let[c,N]of Object.entries(C))typeof N=="function"?t[c]=(...u)=>{i.exportCallStack.push(c);try{return N(...u)}finally{if(!O){var Z=i.exportCallStack.pop();K(Z===c),i.maybeStopUnwind()}}}:t[c]=N;return t},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(C){var t=i.callStackNameToId[C];return t===void 0&&(t=i.callStackId++,i.callStackNameToId[C]=t,i.callStackIdToName[t]=C),t},maybeStopUnwind(){i.currData&&i.state===i.State.Unwinding&&i.exportCallStack.length===0&&(i.state=i.State.Normal,ZB(vi),typeof Fibers<"u"&&Fibers.trampoline())},whenDone(){return K(i.currData,"Tried to wait for an async operation when none is in progress."),K(!i.asyncPromiseHandlers,"Cannot have multiple async operations in flight at once"),new Promise((C,t)=>{i.asyncPromiseHandlers={resolve:C,reject:t}})},allocateData(){var C=iC(12+i.StackSize);return i.setDataHeader(C,C+12,i.StackSize),i.setDataRewindFunc(C),C},setDataHeader(C,t,c){gA[C>>2]=t,gA[C+4>>2]=t+c},setDataRewindFunc(C){var t=i.exportCallStack[0],c=i.getCallStackId(t);GA[C+8>>2]=c},getDataRewindFuncName(C){var t=GA[C+8>>2],c=i.callStackIdToName[t];return c},getDataRewindFunc(C){var t=_A[C];return t},doRewind(C){var t=i.getDataRewindFuncName(C),c=i.getDataRewindFunc(t);return c()},handleSleep(C){if(K(i.state!==i.State.Disabled,"Asyncify cannot be done during or after the runtime exits"),!O){if(i.state===i.State.Normal){var t=!1,c=!1;C((N=0)=>{if(K(!N||typeof N=="number"||typeof N=="boolean"),!O&&(i.handleSleepReturnValue=N,t=!0,!!c)){K(!i.exportCallStack.length,"Waking up (starting to rewind) must be done from JS, without compiled code on the stack."),i.state=i.State.Rewinding,ZB(()=>Pi(i.currData)),typeof Browser<"u"&&Browser.mainLoop.func&&Browser.mainLoop.resume();var u,Z=!1;try{u=i.doRewind(i.currData)}catch(W){u=W,Z=!0}var V=!1;if(!i.currData){var P=i.asyncPromiseHandlers;P&&(i.asyncPromiseHandlers=null,(Z?P.reject:P.resolve)(u),V=!0)}if(Z&&!V)throw u}}),c=!0,t||(i.state=i.State.Unwinding,i.currData=i.allocateData(),typeof Browser<"u"&&Browser.mainLoop.func&&Browser.mainLoop.pause(),ZB(()=>Ki(i.currData)))}else i.state===i.State.Rewinding?(i.state=i.State.Normal,ZB(Zi),ZQ(i.currData),i.currData=null,i.sleepCallbacks.forEach(A)):LA(`invalid state: ${i.state}`);return i.handleSleepReturnValue}},handleAsync(C){return i.handleSleep(t=>{C().then(t)})}};function a(C,t,c,N,u,Z){var V=t.length;V<2&&iA("argTypes array size mismatch! Must at least get return value and 'this' types!"),K(!Z,"Async bindings are only supported with JSPI.");for(var P=t[1]!==null&&c!==null,W=Pg(t),AA=t[0].name!=="void",QA=[C,iA,N,u,HB,t[0],t[1]],eA=0;eA<V-2;++eA)QA.push(t[eA+2]);if(QA.push(i),!W)for(var eA=P?1:2;eA<t.length;++eA)t[eA].destructorFunction!==null&&QA.push(t[eA].destructorFunction);let[kA,zA]=AC(t,P,AA,Z);kA.push(zA);var DQ=$I(Function,kA)(...QA);return vB(C,DQ)}var D=(C,t,c,N,u,Z)=>{K(t>0);var V=vg(t,c);u=CQ(N,u),FA([],[C],P=>{P=P[0];var W=`constructor ${P.name}`;if(P.registeredClass.constructor_body===void 0&&(P.registeredClass.constructor_body=[]),P.registeredClass.constructor_body[t-1]!==void 0)throw new AB(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${P.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return P.registeredClass.constructor_body[t-1]=()=>{FB(`Cannot construct ${P.name} due to unbound types`,V)},FA([],V,AA=>(AA.splice(1,0,null),P.registeredClass.constructor_body[t-1]=a(W,AA,null,u,Z),[])),[]})},h=(C,t,c)=>(C instanceof Object||iA(`${c} with invalid "this": ${C}`),C instanceof t.registeredClass.constructor||iA(`${c} incompatible with "this" of type ${C.constructor.name}`),C.$$.ptr||iA(`cannot call emscripten binding method ${c} on deleted object`),HA(C.$$.ptr,C.$$.ptrType.registeredClass,t.registeredClass)),p=(C,t,c,N,u,Z,V,P,W,AA)=>{t=uA(t),u=CQ(N,u),FA([],[C],QA=>{QA=QA[0];var eA=`${QA.name}.${t}`,kA={get(){FB(`Cannot access ${eA} due to unbound types`,[c,V])},enumerable:!0,configurable:!0};return W?kA.set=()=>FB(`Cannot access ${eA} due to unbound types`,[c,V]):kA.set=zA=>iA(eA+" is a read-only property"),Object.defineProperty(QA.registeredClass.instancePrototype,t,kA),FA([],W?[c,V]:[c],zA=>{var DQ=zA[0],gB={get(){var cQ=h(this,QA,eA+" getter");return DQ.fromWireType(u(Z,cQ))},enumerable:!0};if(W){W=CQ(P,W);var GB=zA[1];gB.set=function(cQ){var fB=h(this,QA,eA+" setter"),$A=[];W(AA,fB,GB.toWireType($A,cQ)),HB($A)}}return Object.defineProperty(QA.registeredClass.instancePrototype,t,gB),[]}),[]})},S=[],$=[],oA=C=>{C>9&&--$[C+1]===0&&(K($[C]!==void 0,"Decref for unallocated handle."),$[C]=void 0,S.push(C))},dA=()=>$.length/2-5-S.length,RA=()=>{$.push(0,1,void 0,1,null,1,!0,1,!1,1),K($.length===10),Q.count_emval_handles=dA},cA={toValue:C=>(C||iA("Cannot use deleted val. handle = "+C),K(C===2||$[C]!==void 0&&C%2===0,`invalid handle: ${C}`),$[C]),toHandle:C=>{switch(C){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let t=S.pop()||$.length;return $[t]=C,$[t+1]=1,t}}}},CA={name:"emscripten::val",fromWireType:C=>{var t=cA.toValue(C);return oA(C),t},toWireType:(C,t)=>cA.toHandle(t),argPackAdvance:RQ,readValueFromPointer:nB,destructorFunction:null},wA=C=>NQ(C,CA),JA=C=>{if(C===null)return"null";var t=typeof C;return t==="object"||t==="array"||t==="function"?C.toString():""+C},fQ=(C,t)=>{switch(t){case 4:return function(c){return this.fromWireType(IQ[c>>2])};case 8:return function(c){return this.fromWireType(YA[c>>3])};default:throw new TypeError(`invalid float width (${t}): ${C}`)}},eQ=(C,t,c)=>{t=uA(t),NQ(C,{name:t,fromWireType:N=>N,toWireType:(N,u)=>{if(typeof u!="number"&&typeof u!="boolean")throw new TypeError(`Cannot convert ${JA(u)} to ${this.name}`);return u},argPackAdvance:RQ,readValueFromPointer:fQ(t,c),destructorFunction:null})},iQ=C=>{C=C.trim();let t=C.indexOf("(");return t!==-1?(K(C[C.length-1]==")","Parentheses for argument names should match."),C.substr(0,t)):C},tQ=(C,t,c,N,u,Z,V)=>{var P=vg(t,c);C=uA(C),C=iQ(C),u=CQ(N,u),Sg(C,function(){FB(`Cannot call ${C} due to unbound types`,P)},t-1),FA([],P,W=>{var AA=[W[0],null].concat(W.slice(1));return VA(C,a(C,AA,null,u,Z,V),t-1),[]})},NB=(C,t,c)=>{switch(t){case 1:return c?N=>X[N]:N=>BA[N];case 2:return c?N=>aA[N>>1]:N=>tA[N>>1];case 4:return c?N=>GA[N>>2]:N=>gA[N>>2];default:throw new TypeError(`invalid integer width (${t}): ${C}`)}},nQ=(C,t,c,N,u)=>{t=uA(t),u===-1&&(u=4294967295);var Z=QA=>QA;if(N===0){var V=32-8*c;Z=QA=>QA<<V>>>V}var P=t.includes("unsigned"),W=(QA,eA)=>{if(typeof QA!="number"&&typeof QA!="boolean")throw new TypeError(`Cannot convert "${JA(QA)}" to ${eA}`);if(QA<N||QA>u)throw new TypeError(`Passing a number "${JA(QA)}" from JS side to C/C++ side to an argument of type "${t}", which is outside the valid range [${N}, ${u}]!`)},AA;P?AA=function(QA,eA){return W(eA,this.name),eA>>>0}:AA=function(QA,eA){return W(eA,this.name),eA},NQ(C,{name:t,fromWireType:Z,toWireType:AA,argPackAdvance:RQ,readValueFromPointer:NB(t,c,N!==0),destructorFunction:null})},BB=(C,t,c)=>{var N=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],u=N[t];function Z(V){var P=gA[V>>2],W=gA[V+4>>2];return new u(X.buffer,W,P)}c=uA(c),NQ(C,{name:c,fromWireType:Z,argPackAdvance:RQ,readValueFromPointer:Z},{ignoreDuplicateRegistrations:!0})},bA=(C,t,c,N)=>{if(K(typeof C=="string",`stringToUTF8Array expects a string (got ${typeof C})`),!(N>0))return 0;for(var u=c,Z=c+N-1,V=0;V<C.length;++V){var P=C.charCodeAt(V);if(P>=55296&&P<=57343){var W=C.charCodeAt(++V);P=65536+((P&1023)<<10)|W&1023}if(P<=127){if(c>=Z)break;t[c++]=P}else if(P<=2047){if(c+1>=Z)break;t[c++]=192|P>>6,t[c++]=128|P&63}else if(P<=65535){if(c+2>=Z)break;t[c++]=224|P>>12,t[c++]=128|P>>6&63,t[c++]=128|P&63}else{if(c+3>=Z)break;P>1114111&&OA("Invalid Unicode code point "+PQ(P)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),t[c++]=240|P>>18,t[c++]=128|P>>12&63,t[c++]=128|P>>6&63,t[c++]=128|P&63}}return t[c]=0,c-u},Qi=(C,t,c)=>(K(typeof c=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),bA(C,BA,t,c)),Bi=C=>{for(var t=0,c=0;c<C.length;++c){var N=C.charCodeAt(c);N<=127?t++:N<=2047?t+=2:N>=55296&&N<=57343?(t+=4,++c):t+=3}return t},gi=(C,t)=>{t=uA(t);var c=t==="std::string";NQ(C,{name:t,fromWireType(N){var u=gA[N>>2],Z=N+4,V;if(c)for(var P=Z,W=0;W<=u;++W){var AA=Z+W;if(W==u||BA[AA]==0){var QA=AA-P,eA=zQ(P,QA);V===void 0?V=eA:(V+="\0",V+=eA),P=AA+1}}else{for(var kA=new Array(u),W=0;W<u;++W)kA[W]=String.fromCharCode(BA[Z+W]);V=kA.join("")}return ZQ(N),V},toWireType(N,u){u instanceof ArrayBuffer&&(u=new Uint8Array(u));var Z,V=typeof u=="string";V||u instanceof Uint8Array||u instanceof Uint8ClampedArray||u instanceof Int8Array||iA("Cannot pass non-string to std::string"),c&&V?Z=Bi(u):Z=u.length;var P=iC(4+Z+1),W=P+4;if(gA[P>>2]=Z,c&&V)Qi(u,W,Z+1);else if(V)for(var AA=0;AA<Z;++AA){var QA=u.charCodeAt(AA);QA>255&&(ZQ(W),iA("String has UTF-16 code units that do not fit in 8 bits")),BA[W+AA]=QA}else for(var AA=0;AA<Z;++AA)BA[W+AA]=u[AA];return N!==null&&N.push(ZQ,P),P},argPackAdvance:RQ,readValueFromPointer:nB,destructorFunction(N){ZQ(N)}})},TC=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Ii=(C,t)=>{K(C%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var c=C,N=c>>1,u=N+t/2;!(N>=u)&&tA[N];)++N;if(c=N<<1,c-C>32&&TC)return TC.decode(BA.subarray(C,c));for(var Z="",V=0;!(V>=t/2);++V){var P=aA[C+V*2>>1];if(P==0)break;Z+=String.fromCharCode(P)}return Z},Ci=(C,t,c)=>{if(K(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),K(typeof c=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),c??=2147483647,c<2)return 0;c-=2;for(var N=t,u=c<C.length*2?c/2:C.length,Z=0;Z<u;++Z){var V=C.charCodeAt(Z);aA[t>>1]=V,t+=2}return aA[t>>1]=0,t-N},Ei=C=>C.length*2,ei=(C,t)=>{K(C%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var c=0,N="";!(c>=t/4);){var u=GA[C+c*4>>2];if(u==0)break;if(++c,u>=65536){var Z=u-65536;N+=String.fromCharCode(55296|Z>>10,56320|Z&1023)}else N+=String.fromCharCode(u)}return N},ii=(C,t,c)=>{if(K(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),K(typeof c=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),c??=2147483647,c<4)return 0;for(var N=t,u=N+c-4,Z=0;Z<C.length;++Z){var V=C.charCodeAt(Z);if(V>=55296&&V<=57343){var P=C.charCodeAt(++Z);V=65536+((V&1023)<<10)|P&1023}if(GA[t>>2]=V,t+=4,t+4>u)break}return GA[t>>2]=0,t-N},ti=C=>{for(var t=0,c=0;c<C.length;++c){var N=C.charCodeAt(c);N>=55296&&N<=57343&&++c,t+=4}return t},oi=(C,t,c)=>{c=uA(c);var N,u,Z,V;t===2?(N=Ii,u=Ci,V=Ei,Z=P=>tA[P>>1]):t===4&&(N=ei,u=ii,V=ti,Z=P=>gA[P>>2]),NQ(C,{name:c,fromWireType:P=>{for(var W=gA[P>>2],AA,QA=P+4,eA=0;eA<=W;++eA){var kA=P+4+eA*t;if(eA==W||Z(kA)==0){var zA=kA-QA,DQ=N(QA,zA);AA===void 0?AA=DQ:(AA+="\0",AA+=DQ),QA=kA+t}}return ZQ(P),AA},toWireType:(P,W)=>{typeof W!="string"&&iA(`Cannot pass non-string to C++ string type ${c}`);var AA=V(W),QA=iC(4+AA+t);return gA[QA>>2]=AA/t,u(W,QA+4,AA+t),P!==null&&P.push(ZQ,QA),QA},argPackAdvance:RQ,readValueFromPointer:nB,destructorFunction(P){ZQ(P)}})},si=(C,t,c,N,u,Z)=>{YB[C]={name:uA(t),rawConstructor:CQ(c,N),rawDestructor:CQ(u,Z),fields:[]}},ri=(C,t,c,N,u,Z,V,P,W,AA)=>{YB[C].fields.push({fieldName:uA(t),getterReturnType:c,getter:CQ(N,u),getterContext:Z,setterArgumentType:V,setter:CQ(P,W),setterContext:AA})},ai=(C,t)=>{t=uA(t),NQ(C,{isVoid:!0,name:t,argPackAdvance:0,fromWireType:()=>{},toWireType:(c,N)=>{}})},ni=(C,t,c)=>BA.copyWithin(C,t,t+c),Di=(C,t)=>{var c=mQ[C];return c===void 0&&iA(`${t} has unknown type ${Kg(C)}`),c},ci=(C,t)=>{C=Di(C,"_emval_take_value");var c=C.readValueFromPointer(t);return cA.toHandle(c)},wi=()=>2147483648,yi=C=>{var t=z.buffer,c=(C-t.byteLength+65535)/65536;try{return z.grow(c),qA(),1}catch(N){Y(`growMemory: Attempted to grow heap from ${t.byteLength} bytes to ${C} bytes, but got error: ${N}`)}},li=C=>{var t=BA.length;C>>>=0,K(C>t);var c=wi();if(C>c)return Y(`Cannot enlarge memory, requested ${C} bytes, but the limit is ${c} bytes!`),!1;for(var N=(W,AA)=>W+(AA-W%AA)%AA,u=1;u<=4;u*=2){var Z=t*(1+.2/u);Z=Math.min(Z,C+100663296);var V=Math.min(c,N(Math.max(C,Z),65536)),P=yi(V);if(P)return!0}return Y(`Failed to grow the heap from ${t} bytes to ${V} bytes, not enough memory!`),!1},hi=C=>{LA("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},di=(C,t)=>(K(C==C>>>0||C==(C|0)),K(t===(t|0)),t+2097152>>>0<4194305-!!C?(C>>>0)+t*4294967296:NaN);function Fi(C,t,c,N,u){var Z=di(t,c);return 70}var gC=[null,[],[]],IC=(C,t)=>{var c=gC[C];K(c),t===0||t===10?((C===1?q:Y)(_Q(c,0)),c.length=0):c.push(t)},Ni=()=>{Ji(0),gC[1].length&&IC(1,10),gC[2].length&&IC(2,10)},Ri=(C,t,c,N)=>{for(var u=0,Z=0;Z<c;Z++){var V=gA[t>>2],P=gA[t+4>>2];t+=8;for(var W=0;W<P;W++)IC(C,BA[V+W]);u+=P}return gA[N>>2]=u,0},jC=(C,t)=>{K(C<16384),C<128?t.push(C):t.push(C%128|128,C>>7)},Gi=(C,t)=>{var c=C.slice(0,1),N=C.slice(1),u={i:127,p:127,j:126,f:125,d:124,e:111};t.push(96),jC(N.length,t);for(var Z=0;Z<N.length;++Z)K(N[Z]in u,"invalid signature char: "+N[Z]),t.push(u[N[Z]]);c=="v"?t.push(0):t.push(1,u[c])},fi=(C,t)=>{if(K(!t.includes("j"),"i64 not permitted in function signatures when WASM_BIGINT is disabled"),typeof WebAssembly.Function=="function")return new WebAssembly.Function(I(t),C);var c=[1];Gi(t,c);var N=[0,97,115,109,1,0,0,0,1];jC(c.length,N),N.push(...c),N.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var u=new WebAssembly.Module(new Uint8Array(N)),Z=new WebAssembly.Instance(u,{e:{f:C}}),V=Z.exports.f;return V},Mi=(C,t)=>{if(RB)for(var c=C;c<C+t;c++){var N=bg(c);N&&RB.set(N,c)}},RB,Ui=C=>(RB||(RB=new WeakMap,Mi(0,GQ.length)),RB.get(C)||0),CC=[],Li=()=>{if(CC.length)return CC.pop();try{GQ.grow(1)}catch(C){throw C instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":C}return GQ.length-1},EC=(C,t)=>{GQ.set(C,t),dB[C]=GQ.get(C)},pi=(C,t)=>{K(typeof C<"u");var c=Ui(C);if(c)return c;var N=Li();try{EC(N,C)}catch(Z){if(!(Z instanceof TypeError))throw Z;K(typeof t<"u","Missing signature argument to addFunction: "+C);var u=fi(C,t);EC(N,u)}return RB.set(C,N),N},ki=C=>{RB.delete(bg(C)),EC(C,null),CC.push(C)};xB=Q.InternalError=class extends Error{constructor(t){super(t),this.name="InternalError"}},mI(),AB=Q.BindingError=class extends Error{constructor(t){super(t),this.name="BindingError"}},ZI(),KI(),VI(),xg=Q.UnboundTypeError=_I(Error,"UnboundTypeError"),RA();function mi(){WA("fetchSettings")}var eC={__assert_fail:Ug,__cxa_throw:Lg,_abort_js:EA,_embind_finalize_value_object:r,_embind_register_bigint:NA,_embind_register_bool:JI,_embind_register_class:zI,_embind_register_class_constructor:D,_embind_register_class_property:p,_embind_register_emval:wA,_embind_register_float:eQ,_embind_register_function:tQ,_embind_register_integer:nQ,_embind_register_memory_view:BB,_embind_register_std_string:gi,_embind_register_std_wstring:oi,_embind_register_value_object:si,_embind_register_value_object_field:ri,_embind_register_void:ai,_emscripten_memcpy_js:ni,_emval_take_value:ci,emscripten_resize_heap:li,fd_close:hi,fd_seek:Fi,fd_write:Ri},_A=rB(),Gs=hA("__wasm_call_ctors",0),ui=hA("__getTypeName",1),iC=hA("malloc",1),ZQ=hA("free",1),fs=Q._MdnCom_ECSHandler=hA("MdnCom_ECSHandler",1),Ms=Q._MdnCom_Free=hA("MdnCom_Free",1),Us=Q._MdnCom_RawRx=hA("MdnCom_RawRx",1),Ls=Q._MdnCom_Init=hA("MdnCom_Init",2),ps=Q._SendUtoQuery=hA("SendUtoQuery",2),ks=Q._SendUtoCmdExt=hA("SendUtoCmdExt",4),Ji=hA("fflush",1),qC=()=>(qC=_A.emscripten_stack_init)(),Si=()=>(Si=_A.emscripten_stack_get_free)(),Yi=()=>(Yi=_A.emscripten_stack_get_base)(),tC=()=>(tC=_A.emscripten_stack_get_end)(),Hi=C=>(Hi=_A._emscripten_stack_restore)(C),bi=C=>(bi=_A._emscripten_stack_alloc)(C),WC=()=>(WC=_A.emscripten_stack_get_current)(),xi=hA("__cxa_is_pointer_type",1),ms=Q.dynCall_vii=hA("dynCall_vii",3),us=Q.dynCall_iiii=hA("dynCall_iiii",4),Js=Q.dynCall_v=hA("dynCall_v",1),Ss=Q.dynCall_vi=hA("dynCall_vi",2),Ys=Q.dynCall_ii=hA("dynCall_ii",2),Hs=Q.dynCall_i=hA("dynCall_i",1),bs=Q.dynCall_iii=hA("dynCall_iii",3),xs=Q.dynCall_viii=hA("dynCall_viii",4),Ks=Q.dynCall_iiiiii=hA("dynCall_iiiiii",6),vs=Q.dynCall_iiiii=hA("dynCall_iiiii",5),Ps=Q.dynCall_jiji=hA("dynCall_jiji",5),Zs=Q.dynCall_viiiiii=hA("dynCall_viiiiii",7),Ts=Q.dynCall_viiiii=hA("dynCall_viiiii",6),js=Q.dynCall_viiii=hA("dynCall_viiii",5),Ki=hA("asyncify_start_unwind",1),vi=hA("asyncify_stop_unwind",0),Pi=hA("asyncify_start_rewind",1),Zi=hA("asyncify_stop_rewind",0);Q.addFunction=pi,Q.removeFunction=ki;var Ti=["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertU32PairToI53","stackAlloc","getTempRet0","setTempRet0","zeroMemory","isLeapYear","ydayFromDate","arraySum","addDays","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","initRandomFill","randomFill","emscriptenLog","readEmAsmArgs","jstoi_q","getExecutableName","listenOnce","autoResumeAudioContext","asmjsMangle","asyncLoad","alignMemory","mmapAlloc","HandleAllocator","getNativeTypeSize","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","getCFunc","ccall","cwrap","reallyNegative","unSign","strLen","reSign","formatString","intArrayFromString","intArrayToString","AsciiToString","stringToAscii","stringToNewUTF8","stringToUTF8OnStack","writeArrayToMemory","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","jsStackTrace","getCallstack","convertPCtoSourceLocation","getEnvStrings","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","createDyncallWrapper","safeSetTimeout","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getPromise","makePromise","idsToPromises","makePromiseCallback","findMatchingCatch","Browser_asyncPrepareDataCounter","setMainLoop","getSocketFromFD","getSocketAddress","FS_createPreloadedFile","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar","FS_unlink","FS_createDataFile","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","toTypedArrayIndex","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","setErrNo","demangle","stackTrace","getFunctionArgsName","createJsInvokerSignature","registerInheritedInstance","unregisterInheritedInstance","enumReadValueFromPointer","getStringOrSymbol","emval_get_global","emval_returnValue","emval_lookupTypes","emval_addMethodCaller"];Ti.forEach(XQ);var ji=["run","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","addRunDependency","removeRunDependency","out","err","callMain","abort","wasmMemory","wasmExports","writeStackCookie","checkStackCookie","intArrayFromBase64","tryParseAsDataURI","convertI32PairToI53Checked","stackSave","stackRestore","ptrToString","exitJS","getHeapMax","growMemory","ENV","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","ERRNO_CODES","ERRNO_MESSAGES","DNS","Protocols","Sockets","timers","warnOnce","readEmAsmArgsArray","jstoi_s","dynCallLegacy","getDynCaller","dynCall","handleException","keepRuntimeAlive","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","wasmTable","noExitRuntime","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","freeTableIndexes","functionsInTableMap","getEmptyTableSlot","updateTableMap","getFunctionAddress","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","UTF16Decoder","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","JSEvents","specialHTMLTargets","findCanvasEventTarget","currentFullscreenStrategy","restoreOldWindowedStyle","UNWIND_CACHE","ExitStatus","flush_NO_FILESYSTEM","promiseMap","uncaughtExceptionCount","exceptionLast","exceptionCaught","ExceptionInfo","Browser","getPreloadedImageData__data","wget","SYSCALLS","preloadPlugins","FS_stdin_getChar_buffer","FS_createPath","FS_createDevice","FS_readFile","FS","FS_createLazyFile","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","AL","GLUT","EGL","GLEW","IDBStore","runAndAbortIfError","Asyncify","Fibers","SDL","SDL_gfx","allocateUTF8","allocateUTF8OnStack","print","printErr","InternalError","BindingError","throwInternalError","throwBindingError","registeredTypes","awaitingDependencies","typeDependencies","tupleRegistrations","structRegistrations","sharedRegisterType","whenDependentTypesAreResolved","embind_charCodes","embind_init_charCodes","readLatin1String","getTypeName","getFunctionName","heap32VectorToArray","requireRegisteredType","usesDestructorStack","createJsInvoker","UnboundTypeError","PureVirtualError","GenericWireTypeSize","EmValType","init_embind","throwUnboundTypeError","ensureOverloadTable","exposePublicSymbol","replacePublicSymbol","extendError","createNamedFunction","embindRepr","registeredInstances","getBasestPointer","getInheritedInstance","getInheritedInstanceCount","getLiveInheritedInstances","registeredPointers","registerType","integerReadValueFromPointer","floatReadValueFromPointer","readPointer","runDestructors","newFunc","craftInvokerFunction","embind__requireFunction","genericPointerToWireType","constNoSmartPtrRawPointerToWireType","nonConstNoSmartPtrRawPointerToWireType","init_RegisteredPointer","RegisteredPointer","RegisteredPointer_fromWireType","runDestructor","releaseClassHandle","finalizationRegistry","detachFinalizer_deps","detachFinalizer","attachFinalizer","makeClassHandle","init_ClassHandle","ClassHandle","throwInstanceAlreadyDeleted","deletionQueue","flushPendingDeletes","delayFunction","setDelayFunction","RegisteredClass","shallowCopyInternalPointer","downcastPointer","upcastPointer","validateThis","char_0","char_9","makeLegalFunctionName","emval_freelist","emval_handles","emval_symbols","init_emval","count_emval_handles","Emval","emval_methodCallers","reflectConstruct"];ji.forEach(aB);var qg;oB=function C(){qg||OC(),qg||(oB=C)};function qi(){qC(),EQ()}function OC(){if(DA>0||(qi(),yI(),DA>0))return;function C(){qg||(qg=!0,Q.calledRun=!0,!O&&(lI(),e(Q),Q.onRuntimeInitialized&&Q.onRuntimeInitialized(),K(!Q._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),Gg()))}Q.setStatus?(Q.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Q.setStatus("")},1),C()},1)):C(),bQ()}function Wi(){var C=q,t=Y,c=!1;q=Y=N=>{c=!0};try{Ni()}catch{}q=C,Y=t,c&&(OA("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc."),OA("(this may also be due to not including full filesystem support - try building with -sFORCE_FILESYSTEM)"))}if(Q.preInit)for(typeof Q.preInit=="function"&&(Q.preInit=[Q.preInit]);Q.preInit.length>0;)Q.preInit.pop()();OC(),E=o;for(let C of Object.keys(Q))C in g||Object.defineProperty(g,C,{configurable:!0,get(){LA(`Access to module property ('${C}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)}});return E})})();typeof ke=="object"&&typeof SC=="object"?SC.exports=pe:typeof define=="function"&&define.amd&&define([],()=>pe)});var gQ=require("commander");var sC={name:"@microtronics/studio-cli",version:"0.56.0",description:"Microtronics Studio CLI Tool",main:"./out/api.js",typings:"./dist/studio-cli.d.ts",bin:{"studio-cli":"studio-cli"},publishConfig:{access:"public"},scripts:{release:"release-it --ci",compile:"npm run build:registryApiTypings && tsc","build:cli":"node build.mjs",api:"api-extractor run --local --verbose",build:"npm run compile && npm run build:cli && npm run api","watch:build":"npm run compile -- --watch",test:"cross-env STUDIO_ENV=lucky mocha","test-ci":"cross-env STUDIO_ENV=lucky mocha --reporter mocha-junit-reporter","watch:test":"npm run test -- --watch",prepublishOnly:"npm run build","build:registryApiTypings":"npx openapi-typescript https://api.registry.lucky.ci.microtronics.com/v1/openapi.yaml -o ./src/typings/registry.ts"},author:"Microtronics",license:"ISC",dependencies:{"@gera2ld/tarjs":"^0.3.1",ajv:"^8.17.1","ajv-formats":"^3.0.1","ajv-keywords":"^5.1.0",chalk:"^5.4.1",commander:"^12.1.0","cross-fetch":"^4.0.0","deepmerge-ts":"^7.1.5",dotenv:"^16.4.7","file-type-checker":"^1.1.2",glob:"^11.0.1","iconv-lite":"^0.6.3","image-dimensions":"^2.3.0",ini:"^5.0.0",minimatch:"^10.0.1","openapi-fetch":"^0.13.0",pako:"^2.1.0",semver:"^7.7.2","tinytar-fix":"^0.1.1","update-notifier":"^7.3.1",usb:"^2.14.0",uuid:"^9.0.1","vscode-uri":"^3.0.8",yaml:"^2.6.1"},engines:{node:">= 22"},devDependencies:{"@microsoft/api-extractor":"^7.47.11","@types/chai":"^4.3.6","@types/chai-as-promised":"^7.1.5","@types/ini":"^4.1.1","@types/mocha":"^10.0.9","@types/node":"^22.9.1","@types/semver":"^7.5.6","@types/update-notifier":"^6.0.8","@types/vscode":"^1.86.2",chai:"^4.3.8","chai-as-promised":"^7.1.2","cross-env":"^7.0.3",esbuild:"^0.27.3","extract-zip":"^2.0.1","uto-master":"bitbucket:microtronics-core/wasm-uto-master",mocha:"^10.8.2","mocha-junit-reporter":"^2.2.1","openapi-typescript":"^7.6.0",tar:"^7.5.7","ts-node":"^10.9.2",typescript:"^5.6.3"},mocha:{require:["ts-node/register"],"watch-files":"src/**",spec:"./test/**/*.spec.ts",recursive:!0}};var MQ=xA(require("node:fs/promises"));var tg=require("vscode-uri"),AE=require("glob"),MB={readFile(B){return MQ.default.readFile(B.fsPath)},async rm(B){if(await this.stat(B))return MQ.default.rm(B.fsPath,{recursive:!0})},async stat(B){try{let g=await MQ.default.stat(B.fsPath),E=(g.isDirectory()?2:0)|(g.isFile()?1:0)|(g.isSymbolicLink()?64:0);return{ctime:g.ctimeMs,mtime:g.mtimeMs,permissions:void 0,size:g.size,type:E}}catch{return null}},async writeFile(B,g){typeof g=="string"&&(g=new TextEncoder().encode(g));let E=tg.Utils.dirname(B);return await MQ.default.mkdir(E.fsPath,{recursive:!0}),MQ.default.writeFile(B.fsPath,g,{flag:"w"})},async findFiles(B,g,E){let Q={ignore:E,nodir:!0,absolute:!0,dot:!0,cwd:B.fsPath};return(await(0,AE.glob)(g,Q)).map(s=>{let o=s.replace(/\\/g,"/");return tg.URI.parse(`file:///${o}`)})},async copy(B,g){let E=await MQ.default.stat(B.fsPath);return await MQ.default.mkdir(tg.Utils.dirname(g).fsPath,{recursive:!0}),E.isDirectory()?MQ.default.cp(B.fsPath,g.fsPath,{force:!0,recursive:!0}):MQ.default.copyFile(B.fsPath,g.fsPath)},async mkdir(B){await MQ.default.mkdir(B.fsPath,{recursive:!0})}};var dg=require("vscode-uri");var qQ=require("vscode-uri");var og=require("vscode-uri");var Bt=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function Wg(B,g=0){let E=~~g^-1;for(let Q=0;Q<B.length;Q++)E=E>>>8^Bt[(E^B[Q])&255];return(E^-1)>>>0}var Br=new Uint8Array([0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64]),gr=new Uint8Array([0,192,193,1,195,3,2,194,198,6,7,199,5,197,196,4,204,12,13,205,15,207,206,14,10,202,203,11,201,9,8,200,216,24,25,217,27,219,218,26,30,222,223,31,221,29,28,220,20,212,213,21,215,23,22,214,210,18,19,211,17,209,208,16,240,48,49,241,51,243,242,50,54,246,247,55,245,53,52,244,60,252,253,61,255,63,62,254,250,58,59,251,57,249,248,56,40,232,233,41,235,43,42,234,238,46,47,239,45,237,236,44,228,36,37,229,39,231,230,38,34,226,227,35,225,33,32,224,160,96,97,161,99,163,162,98,102,166,167,103,165,101,100,164,108,172,173,109,175,111,110,174,170,106,107,171,105,169,168,104,120,184,185,121,187,123,122,186,190,126,127,191,125,189,188,124,180,116,117,181,119,183,182,118,114,178,179,115,177,113,112,176,80,144,145,81,147,83,82,146,150,86,87,151,85,149,148,84,156,92,93,157,95,159,158,94,90,154,155,91,153,89,88,152,136,72,73,137,75,139,138,74,78,142,143,79,141,77,76,140,68,132,133,69,135,71,70,134,130,66,67,131,65,129,128,64]);var sA;(f=>{function B(d,G){let[k,R]=G,{line:M,col:m}=d.linePos(k);return{line:Number(M)-1,startCharacter:m-1,endCharacter:m+(R-k)}}f.yamlRangeToLineInformation=B;let g=new TextEncoder;function E(d){return Wg(g.encode(d)).toString(16)}f.generateHashForLibraryName=E;function Q(d){return Wg(g.encode(d)).toString(16)}f.generateHashForFilePath=Q;function e(d){return Wg(d).toString(16).toUpperCase().padStart(8,"0")}f.generateCRC32ForFileContent=e;function s(d){try{let G=null;return d?.type==="Buffer"?G=Uint8Array.from(d.data):G=d,new TextDecoder("utf8").decode(G)}catch{return""}}f.convertBlobToString=s;function o(d=""){return d.replace(/\r\n|\n\r|\r/g,`
23
+ ${AA}`,[eA,AA]}var ZB=C=>{try{return C()}catch(t){LA(t)}},Zg=C=>{if(C instanceof Mg||C=="unwind")return x;bQ(),C instanceof WebAssembly.RuntimeError&&WC()<=0&&Y("Stack overflow detected. You can try increasing -sSTACK_SIZE (currently set to 65536)"),d(1,C)},Tg=0,eg=()=>LI||Tg>0,QC=C=>{x=C,eg()||(Q.onExit?.(C),O=!0),d(C,new Mg(C))},BC=(C,t)=>{if(x=C,Wi(),eg()&&!t){var c=`program exited (with status: ${C}), but keepRuntimeAlive() is set (counter=${Tg}) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)`;s(c),Y(c)}QC(C)},jg=BC,ig=()=>{if(!eg())try{jg(x)}catch(C){Zg(C)}},A=C=>{if(O){Y("user callback triggered after runtime exited or application aborted. Ignoring.");return}try{C(),ig()}catch(t){Zg(t)}},I=C=>{K(!C.includes("j"),"i64 not permitted in function signatures when WASM_BIGINT is disabled");for(var t={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},c={parameters:[],results:C[0]=="v"?[]:[t[C[0]]]},N=1;N<C.length;++N)K(C[N]in t,"invalid signature char: "+C[N]),c.parameters.push(t[C[N]]);return c},i={instrumentWasmImports(C){var t=/^(invoke_.*|__asyncjs__.*)$/;for(let[c,N]of Object.entries(C))if(typeof N=="function"){let u=N.isAsync||t.test(c);C[c]=(...Z)=>{var V=i.state;try{return N(...Z)}finally{var P=V===i.State.Normal&&i.state===i.State.Disabled,W=c.startsWith("invoke_")&&!0;if(i.state!==V&&!u&&!P&&!W)throw new Error(`import ${c} was not in ASYNCIFY_IMPORTS, but changed the state`)}}}},instrumentWasmExports(C){var t={};for(let[c,N]of Object.entries(C))typeof N=="function"?t[c]=(...u)=>{i.exportCallStack.push(c);try{return N(...u)}finally{if(!O){var Z=i.exportCallStack.pop();K(Z===c),i.maybeStopUnwind()}}}:t[c]=N;return t},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(C){var t=i.callStackNameToId[C];return t===void 0&&(t=i.callStackId++,i.callStackNameToId[C]=t,i.callStackIdToName[t]=C),t},maybeStopUnwind(){i.currData&&i.state===i.State.Unwinding&&i.exportCallStack.length===0&&(i.state=i.State.Normal,ZB(vi),typeof Fibers<"u"&&Fibers.trampoline())},whenDone(){return K(i.currData,"Tried to wait for an async operation when none is in progress."),K(!i.asyncPromiseHandlers,"Cannot have multiple async operations in flight at once"),new Promise((C,t)=>{i.asyncPromiseHandlers={resolve:C,reject:t}})},allocateData(){var C=iC(12+i.StackSize);return i.setDataHeader(C,C+12,i.StackSize),i.setDataRewindFunc(C),C},setDataHeader(C,t,c){gA[C>>2]=t,gA[C+4>>2]=t+c},setDataRewindFunc(C){var t=i.exportCallStack[0],c=i.getCallStackId(t);GA[C+8>>2]=c},getDataRewindFuncName(C){var t=GA[C+8>>2],c=i.callStackIdToName[t];return c},getDataRewindFunc(C){var t=_A[C];return t},doRewind(C){var t=i.getDataRewindFuncName(C),c=i.getDataRewindFunc(t);return c()},handleSleep(C){if(K(i.state!==i.State.Disabled,"Asyncify cannot be done during or after the runtime exits"),!O){if(i.state===i.State.Normal){var t=!1,c=!1;C((N=0)=>{if(K(!N||typeof N=="number"||typeof N=="boolean"),!O&&(i.handleSleepReturnValue=N,t=!0,!!c)){K(!i.exportCallStack.length,"Waking up (starting to rewind) must be done from JS, without compiled code on the stack."),i.state=i.State.Rewinding,ZB(()=>Pi(i.currData)),typeof Browser<"u"&&Browser.mainLoop.func&&Browser.mainLoop.resume();var u,Z=!1;try{u=i.doRewind(i.currData)}catch(W){u=W,Z=!0}var V=!1;if(!i.currData){var P=i.asyncPromiseHandlers;P&&(i.asyncPromiseHandlers=null,(Z?P.reject:P.resolve)(u),V=!0)}if(Z&&!V)throw u}}),c=!0,t||(i.state=i.State.Unwinding,i.currData=i.allocateData(),typeof Browser<"u"&&Browser.mainLoop.func&&Browser.mainLoop.pause(),ZB(()=>Ki(i.currData)))}else i.state===i.State.Rewinding?(i.state=i.State.Normal,ZB(Zi),ZQ(i.currData),i.currData=null,i.sleepCallbacks.forEach(A)):LA(`invalid state: ${i.state}`);return i.handleSleepReturnValue}},handleAsync(C){return i.handleSleep(t=>{C().then(t)})}};function a(C,t,c,N,u,Z){var V=t.length;V<2&&iA("argTypes array size mismatch! Must at least get return value and 'this' types!"),K(!Z,"Async bindings are only supported with JSPI.");for(var P=t[1]!==null&&c!==null,W=Pg(t),AA=t[0].name!=="void",QA=[C,iA,N,u,HB,t[0],t[1]],eA=0;eA<V-2;++eA)QA.push(t[eA+2]);if(QA.push(i),!W)for(var eA=P?1:2;eA<t.length;++eA)t[eA].destructorFunction!==null&&QA.push(t[eA].destructorFunction);let[kA,zA]=AC(t,P,AA,Z);kA.push(zA);var DQ=$I(Function,kA)(...QA);return vB(C,DQ)}var D=(C,t,c,N,u,Z)=>{K(t>0);var V=vg(t,c);u=CQ(N,u),FA([],[C],P=>{P=P[0];var W=`constructor ${P.name}`;if(P.registeredClass.constructor_body===void 0&&(P.registeredClass.constructor_body=[]),P.registeredClass.constructor_body[t-1]!==void 0)throw new AB(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${P.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return P.registeredClass.constructor_body[t-1]=()=>{FB(`Cannot construct ${P.name} due to unbound types`,V)},FA([],V,AA=>(AA.splice(1,0,null),P.registeredClass.constructor_body[t-1]=a(W,AA,null,u,Z),[])),[]})},h=(C,t,c)=>(C instanceof Object||iA(`${c} with invalid "this": ${C}`),C instanceof t.registeredClass.constructor||iA(`${c} incompatible with "this" of type ${C.constructor.name}`),C.$$.ptr||iA(`cannot call emscripten binding method ${c} on deleted object`),HA(C.$$.ptr,C.$$.ptrType.registeredClass,t.registeredClass)),p=(C,t,c,N,u,Z,V,P,W,AA)=>{t=uA(t),u=CQ(N,u),FA([],[C],QA=>{QA=QA[0];var eA=`${QA.name}.${t}`,kA={get(){FB(`Cannot access ${eA} due to unbound types`,[c,V])},enumerable:!0,configurable:!0};return W?kA.set=()=>FB(`Cannot access ${eA} due to unbound types`,[c,V]):kA.set=zA=>iA(eA+" is a read-only property"),Object.defineProperty(QA.registeredClass.instancePrototype,t,kA),FA([],W?[c,V]:[c],zA=>{var DQ=zA[0],gB={get(){var cQ=h(this,QA,eA+" getter");return DQ.fromWireType(u(Z,cQ))},enumerable:!0};if(W){W=CQ(P,W);var GB=zA[1];gB.set=function(cQ){var fB=h(this,QA,eA+" setter"),$A=[];W(AA,fB,GB.toWireType($A,cQ)),HB($A)}}return Object.defineProperty(QA.registeredClass.instancePrototype,t,gB),[]}),[]})},S=[],$=[],oA=C=>{C>9&&--$[C+1]===0&&(K($[C]!==void 0,"Decref for unallocated handle."),$[C]=void 0,S.push(C))},dA=()=>$.length/2-5-S.length,RA=()=>{$.push(0,1,void 0,1,null,1,!0,1,!1,1),K($.length===10),Q.count_emval_handles=dA},cA={toValue:C=>(C||iA("Cannot use deleted val. handle = "+C),K(C===2||$[C]!==void 0&&C%2===0,`invalid handle: ${C}`),$[C]),toHandle:C=>{switch(C){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{let t=S.pop()||$.length;return $[t]=C,$[t+1]=1,t}}}},CA={name:"emscripten::val",fromWireType:C=>{var t=cA.toValue(C);return oA(C),t},toWireType:(C,t)=>cA.toHandle(t),argPackAdvance:RQ,readValueFromPointer:nB,destructorFunction:null},wA=C=>NQ(C,CA),JA=C=>{if(C===null)return"null";var t=typeof C;return t==="object"||t==="array"||t==="function"?C.toString():""+C},fQ=(C,t)=>{switch(t){case 4:return function(c){return this.fromWireType(IQ[c>>2])};case 8:return function(c){return this.fromWireType(YA[c>>3])};default:throw new TypeError(`invalid float width (${t}): ${C}`)}},eQ=(C,t,c)=>{t=uA(t),NQ(C,{name:t,fromWireType:N=>N,toWireType:(N,u)=>{if(typeof u!="number"&&typeof u!="boolean")throw new TypeError(`Cannot convert ${JA(u)} to ${this.name}`);return u},argPackAdvance:RQ,readValueFromPointer:fQ(t,c),destructorFunction:null})},iQ=C=>{C=C.trim();let t=C.indexOf("(");return t!==-1?(K(C[C.length-1]==")","Parentheses for argument names should match."),C.substr(0,t)):C},tQ=(C,t,c,N,u,Z,V)=>{var P=vg(t,c);C=uA(C),C=iQ(C),u=CQ(N,u),Sg(C,function(){FB(`Cannot call ${C} due to unbound types`,P)},t-1),FA([],P,W=>{var AA=[W[0],null].concat(W.slice(1));return VA(C,a(C,AA,null,u,Z,V),t-1),[]})},NB=(C,t,c)=>{switch(t){case 1:return c?N=>X[N]:N=>BA[N];case 2:return c?N=>aA[N>>1]:N=>tA[N>>1];case 4:return c?N=>GA[N>>2]:N=>gA[N>>2];default:throw new TypeError(`invalid integer width (${t}): ${C}`)}},nQ=(C,t,c,N,u)=>{t=uA(t),u===-1&&(u=4294967295);var Z=QA=>QA;if(N===0){var V=32-8*c;Z=QA=>QA<<V>>>V}var P=t.includes("unsigned"),W=(QA,eA)=>{if(typeof QA!="number"&&typeof QA!="boolean")throw new TypeError(`Cannot convert "${JA(QA)}" to ${eA}`);if(QA<N||QA>u)throw new TypeError(`Passing a number "${JA(QA)}" from JS side to C/C++ side to an argument of type "${t}", which is outside the valid range [${N}, ${u}]!`)},AA;P?AA=function(QA,eA){return W(eA,this.name),eA>>>0}:AA=function(QA,eA){return W(eA,this.name),eA},NQ(C,{name:t,fromWireType:Z,toWireType:AA,argPackAdvance:RQ,readValueFromPointer:NB(t,c,N!==0),destructorFunction:null})},BB=(C,t,c)=>{var N=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],u=N[t];function Z(V){var P=gA[V>>2],W=gA[V+4>>2];return new u(X.buffer,W,P)}c=uA(c),NQ(C,{name:c,fromWireType:Z,argPackAdvance:RQ,readValueFromPointer:Z},{ignoreDuplicateRegistrations:!0})},bA=(C,t,c,N)=>{if(K(typeof C=="string",`stringToUTF8Array expects a string (got ${typeof C})`),!(N>0))return 0;for(var u=c,Z=c+N-1,V=0;V<C.length;++V){var P=C.charCodeAt(V);if(P>=55296&&P<=57343){var W=C.charCodeAt(++V);P=65536+((P&1023)<<10)|W&1023}if(P<=127){if(c>=Z)break;t[c++]=P}else if(P<=2047){if(c+1>=Z)break;t[c++]=192|P>>6,t[c++]=128|P&63}else if(P<=65535){if(c+2>=Z)break;t[c++]=224|P>>12,t[c++]=128|P>>6&63,t[c++]=128|P&63}else{if(c+3>=Z)break;P>1114111&&OA("Invalid Unicode code point "+PQ(P)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF)."),t[c++]=240|P>>18,t[c++]=128|P>>12&63,t[c++]=128|P>>6&63,t[c++]=128|P&63}}return t[c]=0,c-u},Qi=(C,t,c)=>(K(typeof c=="number","stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),bA(C,BA,t,c)),Bi=C=>{for(var t=0,c=0;c<C.length;++c){var N=C.charCodeAt(c);N<=127?t++:N<=2047?t+=2:N>=55296&&N<=57343?(t+=4,++c):t+=3}return t},gi=(C,t)=>{t=uA(t);var c=t==="std::string";NQ(C,{name:t,fromWireType(N){var u=gA[N>>2],Z=N+4,V;if(c)for(var P=Z,W=0;W<=u;++W){var AA=Z+W;if(W==u||BA[AA]==0){var QA=AA-P,eA=zQ(P,QA);V===void 0?V=eA:(V+="\0",V+=eA),P=AA+1}}else{for(var kA=new Array(u),W=0;W<u;++W)kA[W]=String.fromCharCode(BA[Z+W]);V=kA.join("")}return ZQ(N),V},toWireType(N,u){u instanceof ArrayBuffer&&(u=new Uint8Array(u));var Z,V=typeof u=="string";V||u instanceof Uint8Array||u instanceof Uint8ClampedArray||u instanceof Int8Array||iA("Cannot pass non-string to std::string"),c&&V?Z=Bi(u):Z=u.length;var P=iC(4+Z+1),W=P+4;if(gA[P>>2]=Z,c&&V)Qi(u,W,Z+1);else if(V)for(var AA=0;AA<Z;++AA){var QA=u.charCodeAt(AA);QA>255&&(ZQ(W),iA("String has UTF-16 code units that do not fit in 8 bits")),BA[W+AA]=QA}else for(var AA=0;AA<Z;++AA)BA[W+AA]=u[AA];return N!==null&&N.push(ZQ,P),P},argPackAdvance:RQ,readValueFromPointer:nB,destructorFunction(N){ZQ(N)}})},TC=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Ii=(C,t)=>{K(C%2==0,"Pointer passed to UTF16ToString must be aligned to two bytes!");for(var c=C,N=c>>1,u=N+t/2;!(N>=u)&&tA[N];)++N;if(c=N<<1,c-C>32&&TC)return TC.decode(BA.subarray(C,c));for(var Z="",V=0;!(V>=t/2);++V){var P=aA[C+V*2>>1];if(P==0)break;Z+=String.fromCharCode(P)}return Z},Ci=(C,t,c)=>{if(K(t%2==0,"Pointer passed to stringToUTF16 must be aligned to two bytes!"),K(typeof c=="number","stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),c??=2147483647,c<2)return 0;c-=2;for(var N=t,u=c<C.length*2?c/2:C.length,Z=0;Z<u;++Z){var V=C.charCodeAt(Z);aA[t>>1]=V,t+=2}return aA[t>>1]=0,t-N},Ei=C=>C.length*2,ei=(C,t)=>{K(C%4==0,"Pointer passed to UTF32ToString must be aligned to four bytes!");for(var c=0,N="";!(c>=t/4);){var u=GA[C+c*4>>2];if(u==0)break;if(++c,u>=65536){var Z=u-65536;N+=String.fromCharCode(55296|Z>>10,56320|Z&1023)}else N+=String.fromCharCode(u)}return N},ii=(C,t,c)=>{if(K(t%4==0,"Pointer passed to stringToUTF32 must be aligned to four bytes!"),K(typeof c=="number","stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),c??=2147483647,c<4)return 0;for(var N=t,u=N+c-4,Z=0;Z<C.length;++Z){var V=C.charCodeAt(Z);if(V>=55296&&V<=57343){var P=C.charCodeAt(++Z);V=65536+((V&1023)<<10)|P&1023}if(GA[t>>2]=V,t+=4,t+4>u)break}return GA[t>>2]=0,t-N},ti=C=>{for(var t=0,c=0;c<C.length;++c){var N=C.charCodeAt(c);N>=55296&&N<=57343&&++c,t+=4}return t},oi=(C,t,c)=>{c=uA(c);var N,u,Z,V;t===2?(N=Ii,u=Ci,V=Ei,Z=P=>tA[P>>1]):t===4&&(N=ei,u=ii,V=ti,Z=P=>gA[P>>2]),NQ(C,{name:c,fromWireType:P=>{for(var W=gA[P>>2],AA,QA=P+4,eA=0;eA<=W;++eA){var kA=P+4+eA*t;if(eA==W||Z(kA)==0){var zA=kA-QA,DQ=N(QA,zA);AA===void 0?AA=DQ:(AA+="\0",AA+=DQ),QA=kA+t}}return ZQ(P),AA},toWireType:(P,W)=>{typeof W!="string"&&iA(`Cannot pass non-string to C++ string type ${c}`);var AA=V(W),QA=iC(4+AA+t);return gA[QA>>2]=AA/t,u(W,QA+4,AA+t),P!==null&&P.push(ZQ,QA),QA},argPackAdvance:RQ,readValueFromPointer:nB,destructorFunction(P){ZQ(P)}})},si=(C,t,c,N,u,Z)=>{YB[C]={name:uA(t),rawConstructor:CQ(c,N),rawDestructor:CQ(u,Z),fields:[]}},ri=(C,t,c,N,u,Z,V,P,W,AA)=>{YB[C].fields.push({fieldName:uA(t),getterReturnType:c,getter:CQ(N,u),getterContext:Z,setterArgumentType:V,setter:CQ(P,W),setterContext:AA})},ai=(C,t)=>{t=uA(t),NQ(C,{isVoid:!0,name:t,argPackAdvance:0,fromWireType:()=>{},toWireType:(c,N)=>{}})},ni=(C,t,c)=>BA.copyWithin(C,t,t+c),Di=(C,t)=>{var c=mQ[C];return c===void 0&&iA(`${t} has unknown type ${Kg(C)}`),c},ci=(C,t)=>{C=Di(C,"_emval_take_value");var c=C.readValueFromPointer(t);return cA.toHandle(c)},wi=()=>2147483648,yi=C=>{var t=z.buffer,c=(C-t.byteLength+65535)/65536;try{return z.grow(c),qA(),1}catch(N){Y(`growMemory: Attempted to grow heap from ${t.byteLength} bytes to ${C} bytes, but got error: ${N}`)}},li=C=>{var t=BA.length;C>>>=0,K(C>t);var c=wi();if(C>c)return Y(`Cannot enlarge memory, requested ${C} bytes, but the limit is ${c} bytes!`),!1;for(var N=(W,AA)=>W+(AA-W%AA)%AA,u=1;u<=4;u*=2){var Z=t*(1+.2/u);Z=Math.min(Z,C+100663296);var V=Math.min(c,N(Math.max(C,Z),65536)),P=yi(V);if(P)return!0}return Y(`Failed to grow the heap from ${t} bytes to ${V} bytes, not enough memory!`),!1},hi=C=>{LA("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},di=(C,t)=>(K(C==C>>>0||C==(C|0)),K(t===(t|0)),t+2097152>>>0<4194305-!!C?(C>>>0)+t*4294967296:NaN);function Fi(C,t,c,N,u){var Z=di(t,c);return 70}var gC=[null,[],[]],IC=(C,t)=>{var c=gC[C];K(c),t===0||t===10?((C===1?q:Y)(_Q(c,0)),c.length=0):c.push(t)},Ni=()=>{Ji(0),gC[1].length&&IC(1,10),gC[2].length&&IC(2,10)},Ri=(C,t,c,N)=>{for(var u=0,Z=0;Z<c;Z++){var V=gA[t>>2],P=gA[t+4>>2];t+=8;for(var W=0;W<P;W++)IC(C,BA[V+W]);u+=P}return gA[N>>2]=u,0},jC=(C,t)=>{K(C<16384),C<128?t.push(C):t.push(C%128|128,C>>7)},Gi=(C,t)=>{var c=C.slice(0,1),N=C.slice(1),u={i:127,p:127,j:126,f:125,d:124,e:111};t.push(96),jC(N.length,t);for(var Z=0;Z<N.length;++Z)K(N[Z]in u,"invalid signature char: "+N[Z]),t.push(u[N[Z]]);c=="v"?t.push(0):t.push(1,u[c])},fi=(C,t)=>{if(K(!t.includes("j"),"i64 not permitted in function signatures when WASM_BIGINT is disabled"),typeof WebAssembly.Function=="function")return new WebAssembly.Function(I(t),C);var c=[1];Gi(t,c);var N=[0,97,115,109,1,0,0,0,1];jC(c.length,N),N.push(...c),N.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var u=new WebAssembly.Module(new Uint8Array(N)),Z=new WebAssembly.Instance(u,{e:{f:C}}),V=Z.exports.f;return V},Mi=(C,t)=>{if(RB)for(var c=C;c<C+t;c++){var N=bg(c);N&&RB.set(N,c)}},RB,Ui=C=>(RB||(RB=new WeakMap,Mi(0,GQ.length)),RB.get(C)||0),CC=[],Li=()=>{if(CC.length)return CC.pop();try{GQ.grow(1)}catch(C){throw C instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":C}return GQ.length-1},EC=(C,t)=>{GQ.set(C,t),dB[C]=GQ.get(C)},pi=(C,t)=>{K(typeof C<"u");var c=Ui(C);if(c)return c;var N=Li();try{EC(N,C)}catch(Z){if(!(Z instanceof TypeError))throw Z;K(typeof t<"u","Missing signature argument to addFunction: "+C);var u=fi(C,t);EC(N,u)}return RB.set(C,N),N},ki=C=>{RB.delete(bg(C)),EC(C,null),CC.push(C)};xB=Q.InternalError=class extends Error{constructor(t){super(t),this.name="InternalError"}},mI(),AB=Q.BindingError=class extends Error{constructor(t){super(t),this.name="BindingError"}},ZI(),KI(),VI(),xg=Q.UnboundTypeError=_I(Error,"UnboundTypeError"),RA();function mi(){WA("fetchSettings")}var eC={__assert_fail:Ug,__cxa_throw:Lg,_abort_js:EA,_embind_finalize_value_object:r,_embind_register_bigint:NA,_embind_register_bool:JI,_embind_register_class:zI,_embind_register_class_constructor:D,_embind_register_class_property:p,_embind_register_emval:wA,_embind_register_float:eQ,_embind_register_function:tQ,_embind_register_integer:nQ,_embind_register_memory_view:BB,_embind_register_std_string:gi,_embind_register_std_wstring:oi,_embind_register_value_object:si,_embind_register_value_object_field:ri,_embind_register_void:ai,_emscripten_memcpy_js:ni,_emval_take_value:ci,emscripten_resize_heap:li,fd_close:hi,fd_seek:Fi,fd_write:Ri},_A=rB(),Gs=hA("__wasm_call_ctors",0),ui=hA("__getTypeName",1),iC=hA("malloc",1),ZQ=hA("free",1),fs=Q._MdnCom_ECSHandler=hA("MdnCom_ECSHandler",1),Ms=Q._MdnCom_Free=hA("MdnCom_Free",1),Us=Q._MdnCom_RawRx=hA("MdnCom_RawRx",1),Ls=Q._MdnCom_Init=hA("MdnCom_Init",2),ps=Q._SendUtoQuery=hA("SendUtoQuery",2),ks=Q._SendUtoCmdExt=hA("SendUtoCmdExt",4),Ji=hA("fflush",1),qC=()=>(qC=_A.emscripten_stack_init)(),Si=()=>(Si=_A.emscripten_stack_get_free)(),Yi=()=>(Yi=_A.emscripten_stack_get_base)(),tC=()=>(tC=_A.emscripten_stack_get_end)(),Hi=C=>(Hi=_A._emscripten_stack_restore)(C),bi=C=>(bi=_A._emscripten_stack_alloc)(C),WC=()=>(WC=_A.emscripten_stack_get_current)(),xi=hA("__cxa_is_pointer_type",1),ms=Q.dynCall_vii=hA("dynCall_vii",3),us=Q.dynCall_iiii=hA("dynCall_iiii",4),Js=Q.dynCall_v=hA("dynCall_v",1),Ss=Q.dynCall_vi=hA("dynCall_vi",2),Ys=Q.dynCall_ii=hA("dynCall_ii",2),Hs=Q.dynCall_i=hA("dynCall_i",1),bs=Q.dynCall_iii=hA("dynCall_iii",3),xs=Q.dynCall_viii=hA("dynCall_viii",4),Ks=Q.dynCall_iiiiii=hA("dynCall_iiiiii",6),vs=Q.dynCall_iiiii=hA("dynCall_iiiii",5),Ps=Q.dynCall_jiji=hA("dynCall_jiji",5),Zs=Q.dynCall_viiiiii=hA("dynCall_viiiiii",7),Ts=Q.dynCall_viiiii=hA("dynCall_viiiii",6),js=Q.dynCall_viiii=hA("dynCall_viiii",5),Ki=hA("asyncify_start_unwind",1),vi=hA("asyncify_stop_unwind",0),Pi=hA("asyncify_start_rewind",1),Zi=hA("asyncify_stop_rewind",0);Q.addFunction=pi,Q.removeFunction=ki;var Ti=["writeI53ToI64","writeI53ToI64Clamped","writeI53ToI64Signaling","writeI53ToU64Clamped","writeI53ToU64Signaling","readI53FromI64","readI53FromU64","convertI32PairToI53","convertU32PairToI53","stackAlloc","getTempRet0","setTempRet0","zeroMemory","isLeapYear","ydayFromDate","arraySum","addDays","inetPton4","inetNtop4","inetPton6","inetNtop6","readSockaddr","writeSockaddr","initRandomFill","randomFill","emscriptenLog","readEmAsmArgs","jstoi_q","getExecutableName","listenOnce","autoResumeAudioContext","asmjsMangle","asyncLoad","alignMemory","mmapAlloc","HandleAllocator","getNativeTypeSize","STACK_SIZE","STACK_ALIGN","POINTER_SIZE","ASSERTIONS","getCFunc","ccall","cwrap","reallyNegative","unSign","strLen","reSign","formatString","intArrayFromString","intArrayToString","AsciiToString","stringToAscii","stringToNewUTF8","stringToUTF8OnStack","writeArrayToMemory","registerKeyEventCallback","maybeCStringToJsString","findEventTarget","getBoundingClientRect","fillMouseEventData","registerMouseEventCallback","registerWheelEventCallback","registerUiEventCallback","registerFocusEventCallback","fillDeviceOrientationEventData","registerDeviceOrientationEventCallback","fillDeviceMotionEventData","registerDeviceMotionEventCallback","screenOrientation","fillOrientationChangeEventData","registerOrientationChangeEventCallback","fillFullscreenChangeEventData","registerFullscreenChangeEventCallback","JSEvents_requestFullscreen","JSEvents_resizeCanvasForFullscreen","registerRestoreOldStyle","hideEverythingExceptGivenElement","restoreHiddenElements","setLetterbox","softFullscreenResizeWebGLRenderTarget","doRequestFullscreen","fillPointerlockChangeEventData","registerPointerlockChangeEventCallback","registerPointerlockErrorEventCallback","requestPointerLock","fillVisibilityChangeEventData","registerVisibilityChangeEventCallback","registerTouchEventCallback","fillGamepadEventData","registerGamepadEventCallback","registerBeforeUnloadEventCallback","fillBatteryEventData","battery","registerBatteryEventCallback","setCanvasElementSize","getCanvasElementSize","jsStackTrace","getCallstack","convertPCtoSourceLocation","getEnvStrings","checkWasiClock","wasiRightsToMuslOFlags","wasiOFlagsToMuslOFlags","createDyncallWrapper","safeSetTimeout","setImmediateWrapped","clearImmediateWrapped","polyfillSetImmediate","getPromise","makePromise","idsToPromises","makePromiseCallback","findMatchingCatch","Browser_asyncPrepareDataCounter","setMainLoop","getSocketFromFD","getSocketAddress","FS_createPreloadedFile","FS_modeStringToFlags","FS_getMode","FS_stdin_getChar","FS_unlink","FS_createDataFile","FS_mkdirTree","_setNetworkCallback","heapObjectForWebGLType","toTypedArrayIndex","webgl_enable_ANGLE_instanced_arrays","webgl_enable_OES_vertex_array_object","webgl_enable_WEBGL_draw_buffers","webgl_enable_WEBGL_multi_draw","emscriptenWebGLGet","computeUnpackAlignedImageSize","colorChannelsInGlTextureFormat","emscriptenWebGLGetTexPixelData","emscriptenWebGLGetUniform","webglGetUniformLocation","webglPrepareUniformLocationsBeforeFirstUse","webglGetLeftBracePos","emscriptenWebGLGetVertexAttrib","__glGetActiveAttribOrUniform","writeGLArray","registerWebGlEventCallback","ALLOC_NORMAL","ALLOC_STACK","allocate","writeStringToMemory","writeAsciiToMemory","setErrNo","demangle","stackTrace","getFunctionArgsName","createJsInvokerSignature","registerInheritedInstance","unregisterInheritedInstance","enumReadValueFromPointer","getStringOrSymbol","emval_get_global","emval_returnValue","emval_lookupTypes","emval_addMethodCaller"];Ti.forEach(XQ);var ji=["run","addOnPreRun","addOnInit","addOnPreMain","addOnExit","addOnPostRun","addRunDependency","removeRunDependency","out","err","callMain","abort","wasmMemory","wasmExports","writeStackCookie","checkStackCookie","intArrayFromBase64","tryParseAsDataURI","convertI32PairToI53Checked","stackSave","stackRestore","ptrToString","exitJS","getHeapMax","growMemory","ENV","MONTH_DAYS_REGULAR","MONTH_DAYS_LEAP","MONTH_DAYS_REGULAR_CUMULATIVE","MONTH_DAYS_LEAP_CUMULATIVE","ERRNO_CODES","ERRNO_MESSAGES","DNS","Protocols","Sockets","timers","warnOnce","readEmAsmArgsArray","jstoi_s","dynCallLegacy","getDynCaller","dynCall","handleException","keepRuntimeAlive","runtimeKeepalivePush","runtimeKeepalivePop","callUserCallback","maybeExit","wasmTable","noExitRuntime","uleb128Encode","sigToWasmTypes","generateFuncType","convertJsFunctionToWasm","freeTableIndexes","functionsInTableMap","getEmptyTableSlot","updateTableMap","getFunctionAddress","setValue","getValue","PATH","PATH_FS","UTF8Decoder","UTF8ArrayToString","UTF8ToString","stringToUTF8Array","stringToUTF8","lengthBytesUTF8","UTF16Decoder","UTF16ToString","stringToUTF16","lengthBytesUTF16","UTF32ToString","stringToUTF32","lengthBytesUTF32","JSEvents","specialHTMLTargets","findCanvasEventTarget","currentFullscreenStrategy","restoreOldWindowedStyle","UNWIND_CACHE","ExitStatus","flush_NO_FILESYSTEM","promiseMap","uncaughtExceptionCount","exceptionLast","exceptionCaught","ExceptionInfo","Browser","getPreloadedImageData__data","wget","SYSCALLS","preloadPlugins","FS_stdin_getChar_buffer","FS_createPath","FS_createDevice","FS_readFile","FS","FS_createLazyFile","MEMFS","TTY","PIPEFS","SOCKFS","tempFixedLengthArray","miniTempWebGLFloatBuffers","miniTempWebGLIntBuffers","GL","AL","GLUT","EGL","GLEW","IDBStore","runAndAbortIfError","Asyncify","Fibers","SDL","SDL_gfx","allocateUTF8","allocateUTF8OnStack","print","printErr","InternalError","BindingError","throwInternalError","throwBindingError","registeredTypes","awaitingDependencies","typeDependencies","tupleRegistrations","structRegistrations","sharedRegisterType","whenDependentTypesAreResolved","embind_charCodes","embind_init_charCodes","readLatin1String","getTypeName","getFunctionName","heap32VectorToArray","requireRegisteredType","usesDestructorStack","createJsInvoker","UnboundTypeError","PureVirtualError","GenericWireTypeSize","EmValType","init_embind","throwUnboundTypeError","ensureOverloadTable","exposePublicSymbol","replacePublicSymbol","extendError","createNamedFunction","embindRepr","registeredInstances","getBasestPointer","getInheritedInstance","getInheritedInstanceCount","getLiveInheritedInstances","registeredPointers","registerType","integerReadValueFromPointer","floatReadValueFromPointer","readPointer","runDestructors","newFunc","craftInvokerFunction","embind__requireFunction","genericPointerToWireType","constNoSmartPtrRawPointerToWireType","nonConstNoSmartPtrRawPointerToWireType","init_RegisteredPointer","RegisteredPointer","RegisteredPointer_fromWireType","runDestructor","releaseClassHandle","finalizationRegistry","detachFinalizer_deps","detachFinalizer","attachFinalizer","makeClassHandle","init_ClassHandle","ClassHandle","throwInstanceAlreadyDeleted","deletionQueue","flushPendingDeletes","delayFunction","setDelayFunction","RegisteredClass","shallowCopyInternalPointer","downcastPointer","upcastPointer","validateThis","char_0","char_9","makeLegalFunctionName","emval_freelist","emval_handles","emval_symbols","init_emval","count_emval_handles","Emval","emval_methodCallers","reflectConstruct"];ji.forEach(aB);var qg;oB=function C(){qg||OC(),qg||(oB=C)};function qi(){qC(),EQ()}function OC(){if(DA>0||(qi(),yI(),DA>0))return;function C(){qg||(qg=!0,Q.calledRun=!0,!O&&(lI(),e(Q),Q.onRuntimeInitialized&&Q.onRuntimeInitialized(),K(!Q._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),Gg()))}Q.setStatus?(Q.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Q.setStatus("")},1),C()},1)):C(),bQ()}function Wi(){var C=q,t=Y,c=!1;q=Y=N=>{c=!0};try{Ni()}catch{}q=C,Y=t,c&&(OA("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the Emscripten FAQ), or make sure to emit a newline when you printf etc."),OA("(this may also be due to not including full filesystem support - try building with -sFORCE_FILESYSTEM)"))}if(Q.preInit)for(typeof Q.preInit=="function"&&(Q.preInit=[Q.preInit]);Q.preInit.length>0;)Q.preInit.pop()();OC(),E=o;for(let C of Object.keys(Q))C in g||Object.defineProperty(g,C,{configurable:!0,get(){LA(`Access to module property ('${C}') is no longer possible via the module constructor argument; Instead, use the result of the module constructor.`)}});return E})})();typeof ke=="object"&&typeof SC=="object"?SC.exports=pe:typeof define=="function"&&define.amd&&define([],()=>pe)});var gQ=require("commander");var sC={name:"@microtronics/studio-cli",version:"0.57.0",description:"Microtronics Studio CLI Tool",main:"./out/api.js",typings:"./dist/studio-cli.d.ts",bin:{"studio-cli":"studio-cli"},publishConfig:{access:"public"},scripts:{release:"release-it --ci",compile:"npm run build:registryApiTypings && tsc","build:cli":"node build.mjs",api:"api-extractor run --local --verbose",build:"npm run compile && npm run build:cli && npm run api","watch:build":"npm run compile -- --watch",test:"cross-env STUDIO_ENV=lucky mocha","test-ci":"cross-env STUDIO_ENV=lucky mocha --reporter mocha-junit-reporter","watch:test":"npm run test -- --watch",prepublishOnly:"npm run build","build:registryApiTypings":"npx openapi-typescript https://api.registry.lucky.ci.microtronics.com/v1/openapi.yaml -o ./src/typings/registry.ts"},author:"Microtronics",license:"ISC",dependencies:{"@gera2ld/tarjs":"^0.3.1",ajv:"^8.17.1","ajv-formats":"^3.0.1","ajv-keywords":"^5.1.0",chalk:"^5.4.1",commander:"^12.1.0","cross-fetch":"^4.0.0","deepmerge-ts":"^7.1.5",dotenv:"^16.4.7","file-type-checker":"^1.1.2",glob:"^11.0.1","iconv-lite":"^0.6.3","image-dimensions":"^2.3.0",ini:"^5.0.0",minimatch:"^10.0.1","openapi-fetch":"^0.13.0",pako:"^2.1.0",semver:"^7.7.2","tinytar-fix":"^0.1.1","update-notifier":"^7.3.1",usb:"^2.14.0",uuid:"^9.0.1","vscode-uri":"^3.0.8",yaml:"^2.6.1"},engines:{node:">= 22"},devDependencies:{"@microsoft/api-extractor":"^7.47.11","@types/chai":"^4.3.6","@types/chai-as-promised":"^7.1.5","@types/ini":"^4.1.1","@types/mocha":"^10.0.9","@types/node":"^22.9.1","@types/semver":"^7.5.6","@types/update-notifier":"^6.0.8","@types/vscode":"^1.86.2",chai:"^4.3.8","chai-as-promised":"^7.1.2","cross-env":"^7.0.3",esbuild:"^0.27.3","extract-zip":"^2.0.1","uto-master":"bitbucket:microtronics-core/wasm-uto-master",mocha:"^10.8.2","mocha-junit-reporter":"^2.2.1","openapi-typescript":"^7.6.0",tar:"^7.5.7","ts-node":"^10.9.2",typescript:"^5.6.3"},mocha:{require:["ts-node/register"],"watch-files":"src/**",spec:"./test/**/*.spec.ts",recursive:!0}};var MQ=xA(require("node:fs/promises"));var tg=require("vscode-uri"),AE=require("glob"),MB={readFile(B){return MQ.default.readFile(B.fsPath)},async rm(B){if(await this.stat(B))return MQ.default.rm(B.fsPath,{recursive:!0})},async stat(B){try{let g=await MQ.default.stat(B.fsPath),E=(g.isDirectory()?2:0)|(g.isFile()?1:0)|(g.isSymbolicLink()?64:0);return{ctime:g.ctimeMs,mtime:g.mtimeMs,permissions:void 0,size:g.size,type:E}}catch{return null}},async writeFile(B,g){typeof g=="string"&&(g=new TextEncoder().encode(g));let E=tg.Utils.dirname(B);return await MQ.default.mkdir(E.fsPath,{recursive:!0}),MQ.default.writeFile(B.fsPath,g,{flag:"w"})},async findFiles(B,g,E){let Q={ignore:E,nodir:!0,absolute:!0,dot:!0,cwd:B.fsPath};return(await(0,AE.glob)(g,Q)).map(s=>{let o=s.replace(/\\/g,"/");return tg.URI.parse(`file:///${o}`)})},async copy(B,g){let E=await MQ.default.stat(B.fsPath);return await MQ.default.mkdir(tg.Utils.dirname(g).fsPath,{recursive:!0}),E.isDirectory()?MQ.default.cp(B.fsPath,g.fsPath,{force:!0,recursive:!0}):MQ.default.copyFile(B.fsPath,g.fsPath)},async mkdir(B){await MQ.default.mkdir(B.fsPath,{recursive:!0})}};var dg=require("vscode-uri");var qQ=require("vscode-uri");var og=require("vscode-uri");var Bt=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function Wg(B,g=0){let E=~~g^-1;for(let Q=0;Q<B.length;Q++)E=E>>>8^Bt[(E^B[Q])&255];return(E^-1)>>>0}var Br=new Uint8Array([0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64,0,193,129,64,1,192,128,65,0,193,129,64,1,192,128,65,1,192,128,65,0,193,129,64]),gr=new Uint8Array([0,192,193,1,195,3,2,194,198,6,7,199,5,197,196,4,204,12,13,205,15,207,206,14,10,202,203,11,201,9,8,200,216,24,25,217,27,219,218,26,30,222,223,31,221,29,28,220,20,212,213,21,215,23,22,214,210,18,19,211,17,209,208,16,240,48,49,241,51,243,242,50,54,246,247,55,245,53,52,244,60,252,253,61,255,63,62,254,250,58,59,251,57,249,248,56,40,232,233,41,235,43,42,234,238,46,47,239,45,237,236,44,228,36,37,229,39,231,230,38,34,226,227,35,225,33,32,224,160,96,97,161,99,163,162,98,102,166,167,103,165,101,100,164,108,172,173,109,175,111,110,174,170,106,107,171,105,169,168,104,120,184,185,121,187,123,122,186,190,126,127,191,125,189,188,124,180,116,117,181,119,183,182,118,114,178,179,115,177,113,112,176,80,144,145,81,147,83,82,146,150,86,87,151,85,149,148,84,156,92,93,157,95,159,158,94,90,154,155,91,153,89,88,152,136,72,73,137,75,139,138,74,78,142,143,79,141,77,76,140,68,132,133,69,135,71,70,134,130,66,67,131,65,129,128,64]);var sA;(f=>{function B(d,G){let[k,R]=G,{line:M,col:m}=d.linePos(k);return{line:Number(M)-1,startCharacter:m-1,endCharacter:m+(R-k)}}f.yamlRangeToLineInformation=B;let g=new TextEncoder;function E(d){return Wg(g.encode(d)).toString(16)}f.generateHashForLibraryName=E;function Q(d){return Wg(g.encode(d)).toString(16)}f.generateHashForFilePath=Q;function e(d){return Wg(d).toString(16).toUpperCase().padStart(8,"0")}f.generateCRC32ForFileContent=e;function s(d){try{let G=null;return d?.type==="Buffer"?G=Uint8Array.from(d.data):G=d,new TextDecoder("utf8").decode(G)}catch{return""}}f.convertBlobToString=s;function o(d=""){return d.replace(/\r\n|\n\r|\r/g,`
24
24
  `)}f.normalizeLF=o;function n(d){try{let G=s(d);return o(G).split(`
25
25
  `)}catch{return[]}}f.convertBlobToStringArray=n,f.isNumeric=d=>!Array.isArray(d)&&d-parseFloat(d)+1>=0;function y(d){let G="",k=d.byteLength;for(let R=0;R<k;R++)G+=String.fromCharCode(d[R]);return btoa(G)}f.bufferToBase64=y;function F(d,G){let k=`${d}`.match(/\{\d*(index)(\+\d*)?}/g);if(k){let R=d;return k.forEach(M=>{let m=M.replace(/\+0$/,""),H=m.match(/index/)?.[0];if(H){let L=m.slice(1,-1).split(H)[1],J=parseInt(L)||0;R=R.replace(M,`${G+J}`)}}),R}else return d}f.patchValueWithArrayInfo=F;let l={};function U(d,G,k){let R=l[d];R&&clearTimeout(R.timer),l[d]={timer:setTimeout(()=>{delete l[d],k()},G),handler:k}}f.defer=U})(sA||={});var cE=require("image-dimensions"),wE=require("file-type-checker");var hr=require("cross-fetch/polyfill"),aE=xA(require("openapi-fetch"));var IB=require("vscode-uri");var oQ=require("vscode-uri");var uQ=xA(require("semver"));var AQ="dist/",QE="dde/",rC="dlo/",BE=".studio/",gE="dfiles/",_;(n=>{n.fileNames={projectSettings:"studio.json",mainAmx:"main.amx",mainAmxReport:"main.xml",ddeXml:"dde.xml",ddeOpenApi:"main.yaml",historyJson:"history.json",mainDDE:"main.dde",autoInc:"auto.inc",defaultInc:"default.inc",autoUplinkInc:"app-uplink.inc",autoDdeInc:"X-dde.inc",mainDdeInc:"main-dde.inc",legacyAutoInc:"legacy-auto.inc",legacyAutoDdeInc:"legacy-auto-dde.inc",legacyAutoUplinkInc:"legacy-auto-uplink.inc",reportTemplate:"mdn_report_template.json",dloCfg:"dlo.cfg"};let g=`${BE}auto/`,E=`${g}dlo/`,Q=`${g}dde/`;n.filePaths={studio:{initFile:`${g}.init`,auto:{path:g,dlo:{path:E,autoInc:`${E}${n.fileNames.autoInc}`,defaultInc:`${E}${n.fileNames.defaultInc}`,autoUplinkInc:`${E}${n.fileNames.autoUplinkInc}`,autoDdeInc:`${E}${n.fileNames.autoDdeInc}`,mainDdeInc:`${E}${n.fileNames.mainDdeInc}`,legacyAutoInc:`${E}${n.fileNames.legacyAutoInc}`,legacyAutoDdeInc:`${E}${n.fileNames.legacyAutoDdeInc}`,legacyAutoUplinkInc:`${E}${n.fileNames.legacyAutoUplinkInc}`,cfg:`${E}${n.fileNames.dloCfg}`},dde:{path:Q,historyJson:`${Q}${n.fileNames.historyJson}`}},libdeps:`${BE}libdeps/`},dist:{path:AQ,dloPath:`${AQ}dlo/`,mainAmxPath:`${AQ}dlo/${n.fileNames.mainAmx}`,mainAmxReportPath:`${AQ}dlo/${n.fileNames.mainAmxReport}`,ddeXmlPath:`${AQ}dde/${n.fileNames.ddeXml}`,ddeApiPath:`${AQ}api/`,ddeApi:`${AQ}api/${n.fileNames.ddeOpenApi}`,historyJson:`${AQ}dde/${n.fileNames.historyJson}`,povPath:`${AQ}pov`,povDetailsPath:`${AQ}pov/details`,dfilesPath:`${AQ}dfiles`,dfilesProperties:`${AQ}dfiles/properties.json`,bloPath:`${AQ}blo`,reportTemplate:`${AQ}/${n.fileNames.reportTemplate}`,definesTs:`${AQ}defines.ts`,definesAppTs:`${AQ}defines.app.ts`},dlo:{path:rC,mainDLO:`${rC}main.dlo`,mainINI:`${rC}main.ini`},dde:{path:QE,mainDDE:`${QE}main.dde`},dfiles:{path:gE,mainDFILES:`${gE}/main.dfiles`},appIni:"app.ini",defaultsIni:"defaults.ini"},n.readme=w=>`# ${w} README
26
26
 
@@ -142,7 +142,7 @@ forward ___${H}( ${L});
142
142
  ${f}
143
143
  public ___${H}( ${L})${J}`}else if(R=ME.exec(k)){let[,m,H]=R;G=`${m}${H}{_log_string="";_assert(__refid,__line);}`}else if(R=GE.exec(k)){let[,m,H,L,J]=R;G=`${m}${H}{ if (!(${L})) { sprintf(_log_string,_,${J.replace(/%%/g,"\xFF")});_assert(__refid,__line); }}`}else if(R=fE.exec(k)){let[,m,H,L]=R;G=`${m}${H}{ if (!(${L})) { _log_string="";_assert(__refid,__line); }}`}else if(R=UE.exec(k)){let[,m,H,L]=R;G=`${m}${H}_catch(__refid,__line,${L});`}else if(R=LE.exec(k)){let[,m,H,L,J,q]=R,{priority:Y,code:b}=dE(J,L.substring(1));Y!==null&&(G=`${m}${H}{new params_str{DDE_APPLOG_SIZE_PARAMS};sprintf(params_str,_,${q});DDE_applog_write(${Y}, ${b}, params_str, __applog_src_id);}`)}else if(R=pE.exec(k)){let[,m,H,L,J]=R,{priority:q,code:Y}=dE(J,L.substring(1));q!==null&&(G=`${m}${H}DDE_applog_write(${q}, ${Y}, "", __applog_src_id);`)}else if(R=kE.exec(k)){let[,m,H,L,J]=R,q=L.substring(1),Y=mE[q];G=`${m}${H}{ if(_log_level <= ${Y}){ sprintf(_log_string,_,${J.replace(/%%/g,"\xFF")}); _log${L}(__refid,__line); }}`}else(R=Yt.exec(k))&&!n.includes(_.filePaths.studio.auto.path)?(n.includes(_.filePaths.studio.libdeps)||o.push({file:e,level:"warning",line:d,message:"Libraries are included automatically - remove this #include line"}),G="// Libraries are included automatically! - "+k):(R=Ht.exec(k))&&(o.push({file:e,level:"error",line:d,message:"#endinput is not supported - use #if/#endif instead"}),G=k);w&&!Q.legacyProject&&(xt.exec(k)&&(G=G.replaceAll("DDE_",`_${w}`)),Kt.exec(k)&&(G=G.replace("onUplink",`_${w}`)),vt.exec(k)&&(G=G.replace("onUplink",`_${w}Uplink`))),F.push(G),f++;for(let m=0;m<M;m++)F.push(""),f++,d++}if(y!=="main.dlo"){let d=y.split(".")[0].replace(/[^a-zA-Z0-9]/g,"_"),G=`_inc_${d}`.substring(0,31),k=`_inc_${d}_inc`.substring(0,31);F.push(`#if defined ${G}`),F.push(`#undef ${G}`),F.push("#endif"),F.push(`#if defined ${k}`),F.push(`#undef ${k}`),F.push("#endif")}return{data:F.join(`
144
144
  `),diagnostics:o}}};var SQ=require("vscode-uri");var rA=xA(require("fs")),MA=require("vscode-uri");var HE=xA(require("iconv-lite")),jt=sA.convertBlobToStringArray,bE=16384,xE=511,wC=bE|xE,qt=32768,Wt=438,JE=qt|Wt,Ot=new OB,sg={},zg=[],yC=(B,g,E,Q)=>{zg.length=0,Object.keys(sg).forEach(o=>delete sg[o]);let e={getattr(o){let n=MA.Utils.joinPath(MA.URI.parse(o.mount.opts.root),B.getPath(o)),w=n.fsPath;if(!rA.existsSync(w))throw new B.ErrnoError(44);let y=YE(g,Q,E,n),F=rA.statSync(w),l=y?.length||F.size;return{mode:F.isDirectory()?wC:JE,size:l,atime:F.atime,mtime:F.mtime,ctime:F.ctime}},setattr(o,n){let w=MA.Utils.joinPath(MA.URI.parse(o.mount.opts.root),B.getPath(o)).fsPath;if(!rA.existsSync(w))throw new B.ErrnoError(44);if(typeof n.size=="number"&&rA.truncateSync(w,n.size),typeof n.mode=="number"&&rA.chmodSync(w,n.mode),n.atime||n.mtime){let y=rA.statSync(w);rA.utimesSync(w,n.atime??y.atime,n.mtime??y.mtime)}},lookup(o,n){let y=MA.Utils.joinPath(MA.URI.parse(o.mount.opts.root),B.getPath(o),n).fsPath;if(!rA.existsSync(y))throw new B.ErrnoError(44);let F=rA.statSync(y),l=B.createNode(o,n,F.isDirectory()?wC:JE,0);return l.node_ops=o.node_ops,l.stream_ops=o.stream_ops,l},readdir(o){let n=MA.Utils.joinPath(MA.URI.parse(o.mount.opts.root),B.getPath(o)).fsPath;return[".","..",...rA.readdirSync(n)]},mknod(o,n,w,y){let F=MA.Utils.joinPath(MA.URI.parse(o.mount.opts.root),B.getPath(o),n).fsPath;rA.writeFileSync(F,"");let l=B.createNode(o,n,w,y);return l.node_ops=o.node_ops,l.stream_ops=o.stream_ops,l},unlink(o,n){let w=MA.Utils.joinPath(MA.URI.parse(o.mount.opts.root),B.getPath(o),n).fsPath;rA.unlinkSync(w)},mkdir(o,n,w){let y=MA.Utils.joinPath(MA.URI.parse(o.mount.opts.root),B.getPath(o),n).fsPath;rA.mkdirSync(y,{mode:w});let F=B.createNode(o,n,w|wC,0);return F.node_ops=o.node_ops,F.stream_ops=o.stream_ops,F},rmdir(o,n){let w=MA.Utils.joinPath(MA.URI.parse(o.mount.opts.root),B.getPath(o),n).fsPath;rA.rmdirSync(w)},rename(o,n,w){let y=MA.Utils.joinPath(MA.URI.parse(o.mount.opts.root),B.getPath(o)).fsPath,F=MA.Utils.joinPath(MA.URI.parse(n.mount.opts.root),B.getPath(n),w).fsPath;rA.renameSync(y,F)}},s={open(o){let n=MA.Utils.joinPath(MA.URI.parse(o.node.mount.opts.root),B.getPath(o.node));o.modifiedContent=YE(g,Q,E,n),o.modifiedContent||(o.nfd=rA.openSync(n.fsPath,SE(o.flags)))},close(o){o.nfd&&rA.closeSync(o.nfd)},read(o,n,w,y,F){if(!o.modifiedContent)return rA.readSync(o.nfd,n,w,y,F);let l=o.modifiedContent;if(F>=l.length)return 0;let U=l.length-F,f=Math.min(y,U);return Vt(l,n,w,F,F+f),f},write(o,n,w,y,F){return rA.writeSync(o.nfd,n,w,y,F)},flagsToMode:SE,llseek(o,n,w){let y=n;if(w===1)y+=o.position;else if(w===2){let F=rA.fstatSync(o.nfd);y+=F.size}if(y<0)throw new B.ErrnoError(28);return o.position=y,y}};return{mount(){let o=TQ(g),n=B.createNode(null,o,bE|xE,0);return n.node_ops=e,n.stream_ops=s,n},node_ops:e,stream_ops:s}};function SE(B){let g=B&2097155;if(g===0)return"r";if(g===1)return"r+";if(g===65)return"w";if(g===577)return"w+";if(g===1089)return"a";if(g===1217)return"a+";throw new Error(`Unknown file open flags: ${B}`)}function Vt(B,g,E,Q,e){if(Buffer.isBuffer(B)&&Buffer.isBuffer(g))B.copy(g,E,Q,e);else{let s=B.subarray(Q,e);Buffer.isBuffer(g)?Uint8Array.prototype.set.call(g,s,E):g.set(s,E)}}function YE(B,g,E,Q){let e=Q.fsPath;return!sg[e]&&(e.endsWith(".dlo")||e.endsWith(".inc"))&&(sg[e]=Xt(B,g,E,Q)),sg[e]}function Xt(B,g,E,Q){let e=rA.readFileSync(Q.fsPath),s=jt(e),o=Ot.preCompileDloFile(B,g,E,Q,s);return zg.push(...o.diagnostics),HE.encode(o.data,"cp1252")}function TQ(B){return B.fsPath.replace(/\\/g,"/")}function rg(B,g){let E=TQ(B);return TQ(g).replace(E,"")}var PE=vE(),VB=class{constructor(g,E,Q){this.cwd=g;this.fs=E;this.logger=Q;this.dloCC=null}dloCC;stdout=[];stderr=[];async initDloCC(g=!1){this.stdout.length=0,this.stderr.length=0,this.dloCC=await PE({noExitRuntime:g,print:o=>{let n=hC(this.cwd,o);this.logger.log(n?n.message:o),this.stdout.push(o)},printErr:o=>{let n=hC(this.cwd,o);o.includes(": warning")?this.logger.warn(n?n.message:o):this.logger.error(n?n.message:o),this.stderr.push(o),this.stdout.push(o)}});let E=TQ(this.cwd),[Q]=E.split("/"),e=this.dloCC.FS,s=await T.read(this.cwd,this.fs);e.filesystems.NODEFS_TS=yC(e,this.cwd,s,this.logger),e.mkdir(Q),e.mount(e.filesystems.NODEFS_TS,{root:"/"},Q),e.chdir(TQ(this.cwd))}async compile(g,E){let Q=await T.read(g,E);if(!await T.isApmPartEnabled(g,E,IA.Part.dlo,Q))return this.logger.log("DLO not enabled. Skipped."),{code:0,stdout:[],stderr:[],diagnostics:[]};await this.initDloCC(),await E.mkdir(SQ.Utils.joinPath(g,"dist/dlo"));let e=SQ.Utils.joinPath(g,Q.dlo?.mainFile||_.filePaths.dlo.mainDLO),s=[],o=SQ.Utils.joinPath(g,_.filePaths.studio.auto.dlo.cfg),n=rg(g,o);s.push(`-T.${n}`);let w=0;try{let y=`.${rg(g,e)}`;w=await this.dloCC.callMain([y,...s])}catch(y){this.logger.error(y)}return{code:w,stdout:this.stdout,stderr:this.stderr,diagnostics:[...zg,...dC(g,this.stderr,e)]}}async getDloSymbols(g,E){let Q=E.map(o=>{let n=o.substring(0,2);return["-D","-e","-i","-o","-p","-r","-T"].includes(n)?`${n}.${o.substring(2)}`:o}),{compiler:e,print:s}=await this.getSymbolCompiler();try{if(await e.callMain(["."+g,...Q,"-R"]))return null}catch(o){if(o.stack?.startsWith("RuntimeError"))return null;throw o}return[...s.stdout,...s.stderr]}async getSymbolCompiler(){let g={stdout:[],stderr:[]},E=await PE({noExitRuntime:!1,print:n=>{g.stdout.push(n)},printErr:n=>{g.stderr.push(n)}}),Q=TQ(this.cwd),[e]=Q.split("/"),s=E.FS,o=await T.read(this.cwd,this.fs);return s.filesystems.NODEFS_TS=yC(s,this.cwd,o,this.logger),s.mkdir(e),s.mount(s.filesystems.NODEFS_TS,{root:"/"},e),{compiler:E,print:g}}};function dC(B,g,E){let Q=[],e=g.filter(s=>!!s.trim());for(let s of e){if((s.includes("Assertion failed:")||s.includes("Compilation aborted."))&&E){Q.push({file:E,level:"error",line:0,message:s});continue}let o=hC(B,s);o&&Q.push({file:SQ.URI.parse(`file:///${o?.posixPath}`),level:o.level,line:Number(o.lineNumber)-1,message:o.msg})}return Q}function hC(B,g){let E=g.indexOf(" : "),Q=g.indexOf(": ",E+3),e=g.substring(0,E).trim(),s=g.substring(E+3,Q).trim(),o=g.substring(Q+2).trim();if(!e||!s||!o)return null;let[n,w]=e.split(/[()(-)]/),y=s.split(" "),F=y[y.length-2],U=SQ.Utils.joinPath(B,n).fsPath.replace(/\\/g,"/");U.startsWith("/")&&(U=U.substring(1));let f=g.replace(n,U);return{level:F,msg:o,posixPath:U,lineNumber:w,message:f}}async function ZE(B,g,E){let Q=["-M","-v2"],e=SQ.Utils.joinPath(B,_.filePaths.studio.auto.dlo.defaultInc);Q.push(`-p.${rg(B,e)}`);let s=await mA.getApmPartDependencies(B,g,IA.Part.dlo);for(let n of s){let w=SQ.Utils.dirname(n.path);Q.push(`-i.${rg(B,w)}`)}let o=E.dlo;return o&&Q.push(...o.compileOptions),Q.push("-o./dist/dlo/main.amx"),{path:SQ.Utils.joinPath(B,_.filePaths.studio.auto.dlo.cfg),data:Q.join(`
145
- `)}}var AI;(o=>{o.FileSequencer=WB,o.PreCompiler=OB,o.Compiler=VB,o.uriToMemFs=TQ,o.parseCompilerWarningsAndErrors=dC;async function s(n,w,y){let F=await T.read(n,w),l=await ZE(n,w,F);await w.writeFile(l.path,l.data),y.log("Generated",_.filePaths.studio.auto.dlo.cfg)}o.exportDloConfig=s})(AI||={});var jE=require("vscode-uri");var NC=require("minimatch");var qE=require("@gera2ld/tarjs"),_t=sA.convertBlobToString,zt=require("pako"),WE=".studioignore",OE=[".vscodeignore","package-lock.json","npm-debug.log","yarn.lock","yarn-error.log","npm-shrinkwrap.json",".editorconfig",".npmrc",".yarnrc",".gitattributes","*.todo","tslint.yaml",".eslintrc*",".babelrc*",".prettierrc*",".cz-config.js",".commitlintrc*","webpack.config.js","ISSUE_TEMPLATE.md","CONTRIBUTING.md","PULL_REQUEST_TEMPLATE.md","CODE_OF_CONDUCT.md",".github",".travis.yml","appveyor.yml","**/.git","**/.git/**","**/*.vsix","**/.DS_Store","**/*.vsixmanifest","**/.vscode-test/**","**/.vscode-test-web/**"];OE.push("**/.studio/**","**/node_modules/**",WE,"dist/defines.app.ts");var TE={dot:!0},XB;(Q=>{async function B(e,s){let o=new qE.TarWriter;(await g(e,s)).forEach(y=>{o.addFile(y.name,y.data)});let w=await o.write();return zt.gzip(await w.arrayBuffer())}Q.createArchive=B;async function g(e,s){let o=[],{ignore:n,negate:w}=await $t(e,s),F=(await s.findFiles(e,"**/*")).filter(({path:l})=>{let U=l.slice(e.path.length+1);return!n.some(f=>(0,NC.minimatch)(U,f,TE))||w.some(f=>(0,NC.minimatch)(U,f.slice(1),TE))});for(let l of F){let U=l.path.slice(e.path.length+1),[f,d]=await Promise.all([s.stat(l),s.readFile(l)]);f&&o.push({name:U,data:d,modifyTime:new Date(f.mtime)})}return o}Q.getFilesForArchive=g;async function E(e,s,o,n=SA.ENV.production){let{publisher:w,name:y,version:F}=s,l=await TA.readFilesFromTarGz(o,["CHANGELOG.md","README.md","studio.json"]),U={"CHANGELOG.md":await FC(l["CHANGELOG.md"]),"README.md":await FC(l["README.md"]),"studio.json":await FC(l["studio.json"]),"library.tar.gz":o};return await UA.publishLibraryVersion(e,w,y,F,U,n)}Q.publishPackage=E})(XB||={});async function $t(B,g){let E=["!studio.json","!README.md"],e=(await Ao(B,g)).split(/[\n\r]/).map(y=>y.trim()).filter(y=>!!y).filter(y=>!/^\s*#/.test(y)),s=[...e,...e.filter(y=>!/(^|\/)[^/]*\*[^/]*$/.test(y)).map(y=>/\/$/.test(y)?`${y}**`:`${y}/**`)],o=[...OE,...s,...E],[n,w]=o.reduce((y,F)=>/^\s*!/.test(F)?[y[0],[...y[1],F]]:[[...y[0],F],y[1]],[[],[]]);return{ignore:n,negate:w}}async function Ao(B,g){let E=jE.Utils.joinPath(B,WE);if(await g.stat(E)){let e=await g.readFile(E);return _t(e)}else return""}async function FC(B){return new Uint8Array(await B.arrayBuffer())}var YQ=require("vscode-uri");var _B=require("yaml");var Qo=sA.convertBlobToString,RC=sA.yamlRangeToLineInformation,QI;(o=>{let B;(y=>(y.static="static",y.dynamic="dynamic"))(B=o.Type||={});let g;(l=>(l.crcStamp="crc_stamp",l.stampOnly="stamp_only",l.onlyDown="only_down",l.onlyUp="only_up"))(g=o.SyncLogic||={});let E;(F=>(F.down="down",F.up="up",F.off="off"))(E=o.Force||={});async function Q(n,w,y){let{properties:F,diagnostics:l,libraryFiles:U}=await e(n,w),f=YQ.Utils.joinPath(n,_.filePaths.dist.dfilesPath);await w.stat(f)&&await w.rm(f);for(let[d,G]of Object.entries(F))await go(n,w,d,G,U);return Object.keys(F).length&&(y.done(`${Object.keys(F).length} dfiles processed.`),await w.writeFile(YQ.Utils.joinPath(n,_.filePaths.dist.dfilesProperties),JSON.stringify(F,null," "))),l}o.process=Q;async function e(n,w){let y=[],F={},l=await mA.getApmPartDependencies(n,w,IA.Part.dfiles);for(let d of l){let{properties:G,diagnostics:k}=await s(w,d.path,d.name);Object.assign(F,G),y.push(...k)}let{properties:U,diagnostics:f}=await s(w,YQ.Utils.joinPath(n,_.filePaths.dfiles.mainDFILES),null);return Object.assign(F,U),y.push(...f),{properties:F,diagnostics:y,libraryFiles:l}}o.parseDfile=e;async function s(n,w,y){let F=[],l={};if(!await n.stat(w))return{properties:l,diagnostics:F};let U=await n.readFile(w),f=Qo(U),d=new _B.LineCounter,k=(0,_B.parseDocument)(f,{lineCounter:d}).contents||new _B.YAMLMap;for(let R of k.items){let M=R.key.value,m=R.value,H=RC(d,R.key.range),L=m.value!==null?R.value.has("syncMode"):!1,J=L?R.value.get("syncMode"):"crc_stamp";if(L){let b=Object.values(o.SyncLogic);if(!b.includes(J)){let v=R.value.items.find(z=>z.key.value==="syncMode"),j=RC(d,v.key.range);F.push({file:w,code:"",message:`Property syncMode does not match any of "${b.join(", ")}"`,line:j.line,startCharacter:j.startCharacter,endCharacter:j.endCharacter,level:"error"})}}else F.push({file:w,code:"",message:'Property "syncMode" missing',line:H.line,startCharacter:H.startCharacter,endCharacter:H.endCharacter,level:"error"});M.match(/^[a-z0-9._-]*$/)||F.push({file:w,code:"",message:'Filename does not match pattern "a-z0-9._-"',line:H.line,startCharacter:H.startCharacter,endCharacter:H.endCharacter,level:"error"});let q=YQ.Utils.joinPath(YQ.Utils.dirname(w),M),Y=await Bo(n,q);if(Y)l[M]={crc:Y.crc,force:"off",readable:!1,size:Y.size,stamp:Y.stamp,sync_logic:J,type:"static",library:y};else{let b=RC(d,R.key.range);F.push({file:w,code:"",message:`Could not find file "${M}"`,line:b.line,startCharacter:b.startCharacter,endCharacter:b.endCharacter,level:"error"})}}return{properties:l,diagnostics:F}}o.parseYamlFile=s})(QI||={});async function Bo(B,g){let E=await B.stat(g);if(!E)return null;let Q=await B.readFile(g);return{size:E.size,stamp:Math.trunc(E.ctime),crc:sA.generateCRC32ForFileContent(Q)}}async function go(B,g,E,Q,e){let o=Q.library!==null?YQ.Utils.dirname(e.find(y=>y.name===Q.library).path):YQ.Utils.joinPath(B,_.filePaths.dfiles.path),n=YQ.Utils.joinPath(B,_.filePaths.dist.dfilesPath,E),w=YQ.Utils.joinPath(o,E);await g.copy(w,n)}var VE=xA(require("dotenv")),XE=require("vscode-uri");var Io=".env.local",_E;(g=>{async function B(E,Q){let e=XE.Utils.joinPath(E,Io);if(await Q.stat(e)){let s=await Q.readFile(e);return VE.default.parse(sA.convertBlobToString(s))}return{}}g.read=B})(_E||={});var ag=xA(require("chalk")),BI;(Q=>{let B;(y=>(y[y.log=0]="log",y[y.done=1]="done",y[y.info=2]="info",y[y.warning=3]="warning",y[y.error=4]="error"))(B=Q.LogMessageType||={}),Q.LOG_PREFIX={1:ag.default.bgGreen.black(" DONE "),0:"",2:ag.default.bgBlueBright.black(" INFO "),3:ag.default.bgYellow.black(" WARNING "),4:ag.default.bgRed.black(" ERROR ")};class E{_logHandler;_silent=!1;constructor(s=console){this._logHandler=s}_log(s,o,...n){this._silent&&s!==4||(n=[Q.LOG_PREFIX[s],o,...n],this._logHandler.log(...n))}set silent(s){this._silent=s}log(s,...o){this._log(0,s,...o)}error(s,...o){this._log(4,s,...o)}info(s,...o){this._log(2,s,...o)}warn(s,...o){this._log(3,s,...o)}done(s,...o){this._log(1,s,...o)}}Q.Logger=E})(BI||={});var zE=require("uuid"),Co="b4baec47-0ba4-4e37-b237-8f9cde42b8dd";var ng=class{domain;auth;logger;userInfo=null;constructor(g,E,Q){if(typeof g=="object"){let{serverUrl:e,apiToken:s,authHeader:o,logger:n}=g;this.domain=this.normalizeServerUrl(e),this.auth=o||(s?`Bearer ${s}`:""),this.logger=n}else this.domain=this.normalizeServerUrl(g),typeof E=="string"?(this.auth=`Bearer ${E}`,this.logger=Q):(this.auth="",this.logger=E)}setAuth(g){this.auth=g}getDomain(){return this.domain}normalizeServerUrl(g){return!g.startsWith("http://")&&!g.startsWith("https://")?`https://${g}`:g}trimDomain(g){return g.replace(/(^\w+:|^)\/\//,"")}async fetchJSON(g,E,Q){let e=`${this.domain}${E}`,s={Authorization:this.auth},o={method:g,headers:s};Q&&(Q instanceof FormData?o.body=Q:(s["Content-Type"]="application/json",o.body=JSON.stringify(Q)));let n=await fetch(e,o);if(!n.ok){let w=await n.text().catch(()=>"Unknown error");throw new Error(`HTTP ${n.status}: ${w}`)}return n.json()}async authenticate(){this.logger?.info(`Authenticating with ${this.trimDomain(this.domain)}...`);try{let{user:g,customers:E}=await this.fetchJSON("GET","/api/1/me");return this.userInfo={name:g.name,email:g.email,group:g.group,customers:E},this.logger?.info(`Authenticated as ${this.userInfo.name}`),this.userInfo}catch(g){throw new Error(`Authentication failed: ${g instanceof Error?g.message:String(g)}`)}}getUserInfo(){return this.userInfo}async uploadDevTag(g,E){this.logger?.info(`Uploading development tag ${g}...`);let{applid:Q}=await this.fetchJSON("POST",`/api/1/app-center/__dev/${g}`,E);return this.logger?.info(`Development tag uploaded, application ID: ${Q}`),Q}async getCustomer(g){let{_uid:E,name:Q}=await this.fetchJSON("GET",`/api/1/customers/${g}`);return{_uid:E,name:Q}}async getCustomers(){return this.fetchJSON("GET","/api/1/customers")}async getDeviceSite(g){try{return await this.fetchJSON("GET",`/api/1/devices/${g}/site`)}catch{return null}}async getDevice(g){try{return await this.fetchJSON("GET",`/api/1/devices/${g}`)}catch{return null}}async getSite(g,E){try{return await this.fetchJSON("GET",`/api/1/customers/${g}/sites/${E}`)}catch{return null}}async createDevelopmentSite(g,E,Q){if(this.logger?.info(`Creating development site "${E.name}"...`),E.serialNumber){let s=await this.getSite(g,E.name.toLowerCase());if(s)try{return await this.fetchJSON("POST",`/api/1/customers/${g}/sites/${s._uid}/cn-attach-device`,{device_id:E.serialNumber,allow_overwrite:!0,detach_from_old_site:!0,acquire:!0,create:!0}),this.logger?.info(`Device attached to existing site ${s._uid}`),s._uid}catch(o){if(o.message&&!o.message.includes("304"))this.logger?.warn(`Could not attach device to existing site: ${o.message}`);else return s._uid}}let{_uid:e}=await this.fetchJSON("POST",`/api/1/customers/${g}/sites`,{name:E.name,create:!0,force:!0,note:"This is a Studio development site",applid:E.applicationId,device_id:E.serialNumber,reg_code:Q,servicetariff:"0000000000000000",servicetariff_indiv_cost:0});return this.logger?.info(`Development site created: ${e}`),e}async updateSiteName(g,E){try{await this.fetchJSON("PUT",`/api/1/sites/${g}`,{name:E})}catch{}}};function $E(B){return(0,zE.v5)(B,Co)}async function GC(B,g,E,Q,e,s,o){let n=await T.read(B,g),w=e.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),y=n.name.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),F=await T.isApmPartEnabled(B,g,IA.Part.dlo,n),l=F&&Q,U=l?Q.toUpperCase():`${y}_${w}`,f=l?Q:U,d=o||U;return d.length>50&&(E.warn(`Site name "${d}" is too long. Truncating to 50 characters.`),d=d.substring(0,50)),{apmId:$E(f),applicationId:null,name:d,version:1,serialNumber:F?Q:void 0,siteUid:null,customerUid:s}}async function Ae(B,g,E,Q,e,s){if(s.length>0)for(let o of s){let[n,w]=o.split("@");await mA.installDependency(B,g,E,Q,e,n,w||null)}else await mA.installDependencies(B,g,E,Q,e);await mA.installNpmInApmParts(B,g,E)}async function Qe(B,g,E,Q,e=null,s=!0,o){return await T.validateBasicManifest(B,g,null),TA.buildAll(B,g,E,Q,e,s,o)}async function Eo(B){let g=null;if(B){g=B==="*"?B:B.split(";");let E=await T.validateRegistryAllowedBackends(g);if(E)throw new Error(E)}return g}async function Be(B,g,E,Q,e,s,o,n){E.info("Publishing package...");let w=await Eo(s);if(n)await TA.publishArchive(B,g,E,e,Q,n,o,w);else return await TA.validatePublishSettings(B,g,e,Q),TA.release(B,g,E,Q,e,o,w)}async function ge(B,g,E,Q,e,s){return TA.pack(B,g,E,Q,e,s)}var EB=fA.DDEContainerName,Ie=fA.allowedRelationTypes,eo=fA.regexRelation,io=fA.ContainerType,to=fA.checkForReservedFieldName,gI=fA.ContainerName,oo=fA.CONTAINER_DEFS,so=fA.SERVER_CONTAINER,ro=fA.HISTDATA_CONTAINER,ao=fA.CONFIG_CONTAINER,fC=fA.TransferDirection,Ce=fA.fieldTypeDefinitions,lQ=sA.yamlRangeToLineInformation,II;(g=>{class B{constructor(Q,e,s){this.manifest=Q;this.libraryFiles=e;this.ddeHistory=s}fieldNamesPerContainer={};usedContainerNames={};fileDiagnostics=[];libraryDDE=[];libraryYaml={};parseLibraries(){this.libraryDDE.length=0;let Q=[];return this.libraryFiles.forEach(e=>{let{parsedDDE:s,diagnostics:o,parsedYaml:n}=this.parseYamlFile(e.path,e.yaml,e.libraryName);Q.push(...o),this.libraryDDE.push(s),this.libraryYaml[e.libraryName]=n}),Q}get previousVersion(){return{setPointList:{...this.ddeHistory?.setPointList},containers:{...this.ddeHistory?.containers}}}getContainerOfPreviousVersion(Q){let e=this.previousVersion,s=Q.startsWith("timeseries_")?Q.substring(11):Q;return Object.values(e.containers).find(o=>o.title===s)||null}parseMainDDE(Q,e){let{parsedDDE:s,diagnostics:o}=this.parseYamlFile(Q,e);return o.find(y=>y.level==="error")?{ddeJSON:null,diagnostics:o}:{ddeJSON:this.mergeAndFormat(s),diagnostics:o}}parseYamlFile(Q,e,s){this.fileDiagnostics.length=0;let o=new CB.LineCounter,n=(0,CB.parseDocument)(e,{lineCounter:o});if(!n.contents)return{parsedDDE:{containers:{},setPointList:{}},diagnostics:[],parsedYaml:null};let w=n.contents||new CB.YAMLMap;return this.validateContainerDefinition(w.items).forEach(F=>{this.validateAllowedContainer(Q,F,o,s),this.validateContainerFields(n,Q,F,o)}),{parsedDDE:this.yamlDocToDdeJson(n.toJS({mapAsMap:!0}),s),diagnostics:[...this.fileDiagnostics],parsedYaml:n}}yamlDocToDdeJson(Q,e){let s={containers:{},setPointList:{}},o=new Map,n=[...Object.values(EB)];if(Q.get("cloudProject")){let y=Object.values(this.previousVersion.containers).map(l=>l.title),F=[...new Set([...n,...y])];n.length=0,n.push(...F)}for(let y of n)Q.has(y)&&o.set(y,Q.get(y));let w=Q.get("timeseries");if(w)for(let[y,F]of w)o.set(y,F);for(let[y,F]of o){let{realContainer:l,transferDirection:U,legacyTitle:f}=this.getRealContainerInformation(y);if(!l)continue;let d=oo[l],G=y.includes("timeseries_")?y.replace("timeseries_",""):y,k={name:l,title:G,previousTitle:f,containerType:d.ctype,volatile:y===EB.volatile,transferDirection:U,fieldCount:F.size,knownNames:[],libraries:[],arrays:{},shadows:{},fields:[],size:0,fieldIndex:0};e&&k.libraries.push(e);for(let[R,M]of F){let m=[],H=M.get("type"),L=Ce[H];if(!(!L&&H!=="array")){if(H==="array"){let J=[],q=M.get("length"),Y=M.get("fields"),b={name:R,length:q,library:e||null,fields:[]};k.arrays[R]=b;for(let v=0;v<q;v++){let j={name:R,index:v};for(let[z,O]of Y){let x=Ce[O.get("type")];if(!x)continue;b.fields?.find(aA=>aA.name===z)||b.fields.push({name:z,type:O.get("type"),byteSize:x.len||O.get("bytes")||O.get("length")});let K=`${R}[${v}].${z}`,{fields:X,shadowInfo:BA}=this.createDDEJsonFields(K,e,x,O);X.forEach(aA=>{aA.arrayRef=j}),BA&&(k.shadows[BA.name]=BA),J.push(...X)}}m.push(...J)}else{let{arrayInfo:J,fields:q,shadowInfo:Y}=this.createDDEJsonFields(R,e,L,M);J&&(k.arrays[J.name]=J),Y&&(k.shadows[Y.name]=Y),m.push(...q)}m.forEach(J=>{J.index=++k.fieldIndex,k.fields.push(J),k.size+=J.byteSize})}}s.containers[l]=k}return s}getRealContainerInformation(Q){let e,s,o;if(this.previousVersion){let n=Q.startsWith("timeseries_")?Q.substring(11):Q,{name:w,direction:y,previousTitle:F}=this.findPreviousUsedContainer(n);e=w,s=y,o=F}if(!e){let n=Object.entries(this.usedContainerNames).find(([,w])=>w===Q);n&&(e=n[0])}return e||(e=this.findNextFreeContainer(Q)),this.usedContainerNames[e]=Q,s||(s=[EB.setting,EB.command].includes(Q)?fC.down:fC.up),e&&[gI.configA,gI.configB].includes(e)&&(s=fC.backendOnly),{realContainer:e,transferDirection:s,legacyTitle:o}}findNextFreeContainer(Q){if(Q===gI.aloha)return gI.aloha;let e=ao;Q.startsWith("timeseries_")?e=ro:[EB.relations,EB.storage].includes(Q)&&(e=so);let s=this.previousVersion?.containers;return s&&(e=e.filter(o=>!Object.hasOwn(s,o))),e.find(o=>!Object.hasOwn(this.usedContainerNames,o))}findPreviousUsedContainer(Q){let e=this.previousVersion.containers,s=Object.values(e).find(o=>o.title===Q);return{name:s?.name,direction:s?.transferDirection,previousTitle:s?.previousTitle}}createDDEJsonFields(Q,e,s,o){let n=o.get("array"),w=[],y,F;if(n){y={name:Q,library:e||null,length:n};for(let l=0;l<n;l++){let U=`${Q.toLowerCase()}[${l}]`;w.push(this.buildDDEJsonField(U,o,{name:Q,index:l},s,e,null))}}else{let l=this.buildDDEJsonField(Q,o,null,s,e,null);w.push(l);let U=o.get("shadowFields");if(U){F={name:l.name,byteSize:l.byteSize,byteOffset:l.byteOffset};for(let[f,d]of U){let G=f;Q.includes(".")&&(G=Q.split(".")[0]+`.${f}`),w.push(this.buildDDEJsonField(G,d,null,s,e,l.name))}}}return{arrayInfo:y,shadowInfo:F,fields:w}}buildDDEJsonField(Q,e,s,o,n,w){return{id:Q.toLowerCase(),name:Q,index:0,library:n||null,byteOffset:0,byteSize:o.len||e.get("bytes")||e.get("length"),type:e.get("type"),title:e.get("title")||null,arrayRef:s,shadowRef:w,unit:e.get("unit"),hex:e.get("hex"),decimalPlaces:e.get("decimalPlaces"),writePermission:this.parseUserLevel(e.get("writePermission")),readPermission:this.parseUserLevel(e.get("readPermission")),channelMode:this.parseChannelMode(e.get("channelMode")),defaultValue:e.get("defaultValue"),scale:e.get("scale"),offset:e.get("offset"),chartMinimum:e.get("chartMinimum"),description:e.get("description"),chartMaximum:e.get("chartMaximum"),chartAlarmLow:e.get("chartAlarmLow"),chartAlarmHigh:e.get("chartAlarmHigh"),chartWarningLow:e.get("chartWarningLow"),chartWarningHigh:e.get("chartWarningHigh"),chartHysteresis:e.get("chartHysteresis"),chartTriggerThreshold:e.get("chartTriggerThreshold"),chartTriggerRelation:this.parseTriggerUndershoot(e.get("chartTriggerRelation")),chartSetPoint:e.get("chartSetPoint"),utilsTransferInterval:!!e.get("utilsTransferInterval"),bitmask:e.get("bitmask")}}resolvePossibleAlias(Q,e){return(0,CB.isAlias)(e)?e.resolve(Q).value:e?.value}validateContainerDefinition(Q){let e=[];return Q.forEach(s=>{let n=s.key.value;n==="timeseries"?s.value.items.forEach(w=>{w.key.value=`timeseries_${w.key}`,e.push(w)}):["dde","cloudProject","constants"].includes(n)||e.push(s)}),e}parseUserLevel(Q){if(Q==="read-only")return 99;if(Q?.startsWith("UL"))return Number(Q.substring(2))}parseChannelMode(Q){if(Q)return{digital:1,"day-counter":2,"interval-counter":3,analog:6,"infinite-counter":12}[Q]??Q}parseTriggerUndershoot(Q){if(Q)return{"greater-or-equal":0,"less-or-equal":1}[Q]??Q}validateAllowedContainer(Q,e,s,o){if(!e.value)return;let w=e.key.value;if(o&&(w.startsWith("aloha")||w.startsWith("timeseries"))){let y=w.includes("_")?w.split("_")[1]:w;this.fileDiagnostics.push({file:Q,level:"error",message:`"${y}" not allowed within a library`,...lQ(s,e.key.range)})}if(T.isAnalytics(this.manifest)&&![EB.relations,EB.storage].includes(w)){let y=w.includes("_")?w.split("_")[1]:w;this.fileDiagnostics.push({file:Q,level:"error",message:`"${y}" not allowed within an analytics app. Only "relations" and "storage" are allowed.`,...lQ(s,e.key.range)})}}validateContainerFields(Q,e,s,o){let n=s.value;if(!n)return;let w=s.key.value;Object.hasOwn(this.fieldNamesPerContainer,w)||(this.fieldNamesPerContainer[w]=[]);let y=this.getContainerOfPreviousVersion(w);n.items.forEach(F=>{let U=F.key.value;this.checkForContainerRelation(F,Q,e,o),this.validateFieldName(F,w,e,o),this.checkFieldNameLength(F,w,e,o);let f=y?.fields.find(m=>m.id===U.toLowerCase()),d=F.value,G=d.get("type",!0),k=this.resolvePossibleAlias(Q,G),R=d.get("bytes",!0),M=this.resolvePossibleAlias(Q,R);f&&(G&&k&&f.type!==k&&this.fileDiagnostics.push({file:e,level:"warning",message:`Field type changed from "${f.type}" to "${k}".
145
+ `)}}var AI;(o=>{o.FileSequencer=WB,o.PreCompiler=OB,o.Compiler=VB,o.uriToMemFs=TQ,o.parseCompilerWarningsAndErrors=dC;async function s(n,w,y){let F=await T.read(n,w),l=await ZE(n,w,F);await w.writeFile(l.path,l.data),y.log("Generated",_.filePaths.studio.auto.dlo.cfg)}o.exportDloConfig=s})(AI||={});var jE=require("vscode-uri");var NC=require("minimatch");var qE=require("@gera2ld/tarjs"),_t=sA.convertBlobToString,zt=require("pako"),WE=".studioignore",OE=[".vscodeignore","package-lock.json","npm-debug.log","yarn.lock","yarn-error.log","npm-shrinkwrap.json",".editorconfig",".npmrc",".yarnrc",".gitattributes","*.todo","tslint.yaml",".eslintrc*",".babelrc*",".prettierrc*",".cz-config.js",".commitlintrc*","webpack.config.js","ISSUE_TEMPLATE.md","CONTRIBUTING.md","PULL_REQUEST_TEMPLATE.md","CODE_OF_CONDUCT.md",".github",".travis.yml","appveyor.yml","**/.git","**/.git/**","**/*.vsix","**/.DS_Store","**/*.vsixmanifest","**/.vscode-test/**","**/.vscode-test-web/**"];OE.push("**/.studio/**","**/node_modules/**",WE,"dist/defines.app.ts");var TE={dot:!0},XB;(Q=>{async function B(e,s){let o=new qE.TarWriter;(await g(e,s)).forEach(y=>{o.addFile(y.name,y.data)});let w=await o.write();return zt.gzip(await w.arrayBuffer())}Q.createArchive=B;async function g(e,s){let o=[],{ignore:n,negate:w}=await $t(e,s),F=(await s.findFiles(e,"**/*")).filter(({path:l})=>{let U=l.slice(e.path.length+1);return!n.some(f=>(0,NC.minimatch)(U,f,TE))||w.some(f=>(0,NC.minimatch)(U,f.slice(1),TE))});for(let l of F){let U=l.path.slice(e.path.length+1),[f,d]=await Promise.all([s.stat(l),s.readFile(l)]);f&&o.push({name:U,data:d,modifyTime:new Date(f.mtime)})}return o}Q.getFilesForArchive=g;async function E(e,s,o,n=SA.ENV.production){let{publisher:w,name:y,version:F}=s,l=await TA.readFilesFromTarGz(o,["CHANGELOG.md","README.md","studio.json"]),U={"CHANGELOG.md":await FC(l["CHANGELOG.md"]),"README.md":await FC(l["README.md"]),"studio.json":await FC(l["studio.json"]),"library.tar.gz":o};return await UA.publishLibraryVersion(e,w,y,F,U,n)}Q.publishPackage=E})(XB||={});async function $t(B,g){let E=["!studio.json","!README.md"],e=(await Ao(B,g)).split(/[\n\r]/).map(y=>y.trim()).filter(y=>!!y).filter(y=>!/^\s*#/.test(y)),s=[...e,...e.filter(y=>!/(^|\/)[^/]*\*[^/]*$/.test(y)).map(y=>/\/$/.test(y)?`${y}**`:`${y}/**`)],o=[...OE,...s,...E],[n,w]=o.reduce((y,F)=>/^\s*!/.test(F)?[y[0],[...y[1],F]]:[[...y[0],F],y[1]],[[],[]]);return{ignore:n,negate:w}}async function Ao(B,g){let E=jE.Utils.joinPath(B,WE);if(await g.stat(E)){let e=await g.readFile(E);return _t(e)}else return""}async function FC(B){return new Uint8Array(await B.arrayBuffer())}var YQ=require("vscode-uri");var _B=require("yaml");var Qo=sA.convertBlobToString,RC=sA.yamlRangeToLineInformation,QI;(o=>{let B;(y=>(y.static="static",y.dynamic="dynamic"))(B=o.Type||={});let g;(l=>(l.crcStamp="crc_stamp",l.stampOnly="stamp_only",l.onlyDown="only_down",l.onlyUp="only_up"))(g=o.SyncLogic||={});let E;(F=>(F.down="down",F.up="up",F.off="off"))(E=o.Force||={});async function Q(n,w,y){let{properties:F,diagnostics:l,libraryFiles:U}=await e(n,w),f=YQ.Utils.joinPath(n,_.filePaths.dist.dfilesPath);await w.stat(f)&&await w.rm(f);for(let[d,G]of Object.entries(F))await go(n,w,d,G,U);return Object.keys(F).length&&(y.done(`${Object.keys(F).length} dfiles processed.`),await w.writeFile(YQ.Utils.joinPath(n,_.filePaths.dist.dfilesProperties),JSON.stringify(F,null," "))),l}o.process=Q;async function e(n,w){let y=[],F={},l=await mA.getApmPartDependencies(n,w,IA.Part.dfiles);for(let d of l){let{properties:G,diagnostics:k}=await s(w,d.path,d.name);Object.assign(F,G),y.push(...k)}let{properties:U,diagnostics:f}=await s(w,YQ.Utils.joinPath(n,_.filePaths.dfiles.mainDFILES),null);return Object.assign(F,U),y.push(...f),{properties:F,diagnostics:y,libraryFiles:l}}o.parseDfile=e;async function s(n,w,y){let F=[],l={};if(!await n.stat(w))return{properties:l,diagnostics:F};let U=await n.readFile(w),f=Qo(U),d=new _B.LineCounter,k=(0,_B.parseDocument)(f,{lineCounter:d}).contents||new _B.YAMLMap;for(let R of k.items){let M=R.key.value,m=R.value,H=RC(d,R.key.range),L=m.value!==null?R.value.has("syncMode"):!1,J=L?R.value.get("syncMode"):"crc_stamp";if(L){let b=Object.values(o.SyncLogic);if(!b.includes(J)){let v=R.value.items.find(z=>z.key.value==="syncMode"),j=RC(d,v.key.range);F.push({file:w,code:"",message:`Property syncMode does not match any of "${b.join(", ")}"`,line:j.line,startCharacter:j.startCharacter,endCharacter:j.endCharacter,level:"error"})}}else F.push({file:w,code:"",message:'Property "syncMode" missing',line:H.line,startCharacter:H.startCharacter,endCharacter:H.endCharacter,level:"error"});M.match(/^[a-z0-9._-]*$/)||F.push({file:w,code:"",message:'Filename does not match pattern "a-z0-9._-"',line:H.line,startCharacter:H.startCharacter,endCharacter:H.endCharacter,level:"error"});let q=YQ.Utils.joinPath(YQ.Utils.dirname(w),M),Y=await Bo(n,q);if(Y)l[M]={crc:Y.crc,force:"off",readable:!1,size:Y.size,stamp:Y.stamp,sync_logic:J,type:"static",library:y};else{let b=RC(d,R.key.range);F.push({file:w,code:"",message:`Could not find file "${M}"`,line:b.line,startCharacter:b.startCharacter,endCharacter:b.endCharacter,level:"error"})}}return{properties:l,diagnostics:F}}o.parseYamlFile=s})(QI||={});async function Bo(B,g){let E=await B.stat(g);if(!E)return null;let Q=await B.readFile(g);return{size:E.size,stamp:Math.trunc(E.ctime),crc:sA.generateCRC32ForFileContent(Q)}}async function go(B,g,E,Q,e){let o=Q.library!==null?YQ.Utils.dirname(e.find(y=>y.name===Q.library).path):YQ.Utils.joinPath(B,_.filePaths.dfiles.path),n=YQ.Utils.joinPath(B,_.filePaths.dist.dfilesPath,E),w=YQ.Utils.joinPath(o,E);await g.copy(w,n)}var VE=xA(require("dotenv")),XE=require("vscode-uri");var Io=".env.local",_E;(g=>{async function B(E,Q){let e=XE.Utils.joinPath(E,Io);if(await Q.stat(e)){let s=await Q.readFile(e);return VE.default.parse(sA.convertBlobToString(s))}return{}}g.read=B})(_E||={});var ag=xA(require("chalk")),BI;(Q=>{let B;(y=>(y[y.log=0]="log",y[y.done=1]="done",y[y.info=2]="info",y[y.warning=3]="warning",y[y.error=4]="error"))(B=Q.LogMessageType||={}),Q.LOG_PREFIX={1:ag.default.bgGreen.black(" DONE "),0:"",2:ag.default.bgBlueBright.black(" INFO "),3:ag.default.bgYellow.black(" WARNING "),4:ag.default.bgRed.black(" ERROR ")};class E{_logHandler;_silent=!1;constructor(s=console){this._logHandler=s}_log(s,o,...n){this._silent&&s!==4||(n=[Q.LOG_PREFIX[s],o,...n],this._logHandler.log(...n))}set silent(s){this._silent=s}log(s,...o){this._log(0,s,...o)}error(s,...o){this._log(4,s,...o)}info(s,...o){this._log(2,s,...o)}warn(s,...o){this._log(3,s,...o)}done(s,...o){this._log(1,s,...o)}}Q.Logger=E})(BI||={});var zE=require("uuid"),Co="b4baec47-0ba4-4e37-b237-8f9cde42b8dd";var ng=class{domain;auth;logger;userInfo=null;constructor(g,E,Q){if(typeof g=="object"){let{serverUrl:e,apiToken:s,authHeader:o,logger:n}=g;this.domain=this.normalizeServerUrl(e),this.auth=o||(s?`Bearer ${s}`:""),this.logger=n}else this.domain=this.normalizeServerUrl(g),typeof E=="string"?(this.auth=`Bearer ${E}`,this.logger=Q):(this.auth="",this.logger=E)}setAuth(g){this.auth=g}getDomain(){return this.domain}normalizeServerUrl(g){return!g.startsWith("http://")&&!g.startsWith("https://")?`https://${g}`:g}trimDomain(g){return g.replace(/(^\w+:|^)\/\//,"")}async fetchJSON(g,E,Q){let e=`${this.domain}${E}`,s={Authorization:this.auth},o={method:g,headers:s};Q&&(Q instanceof FormData?o.body=Q:(s["Content-Type"]="application/json",o.body=JSON.stringify(Q)));let n=await fetch(e,o);if(!n.ok){let w=await n.text().catch(()=>"Unknown error");throw new Error(`HTTP ${n.status}: ${w}`)}return n.json()}async authenticate(){this.logger?.info(`Authenticating with ${this.trimDomain(this.domain)}...`);try{let{user:g,customers:E}=await this.fetchJSON("GET","/api/1/me");return this.userInfo={name:g.name,email:g.email,group:g.group,customers:E},this.logger?.info(`Authenticated as ${this.userInfo.name}`),this.userInfo}catch(g){throw new Error(`Authentication failed: ${g instanceof Error?g.message:String(g)}`)}}getUserInfo(){return this.userInfo}async uploadDevTag(g,E){this.logger?.info(`Uploading development tag ${g}...`);let{applid:Q}=await this.fetchJSON("POST",`/api/1/app-center/__dev/${g}`,E);return this.logger?.info(`Development tag uploaded, application ID: ${Q}`),Q}async getCustomer(g){let{_uid:E,name:Q}=await this.fetchJSON("GET",`/api/1/customers/${g}`);return{_uid:E,name:Q}}async getCustomers(){return this.fetchJSON("GET","/api/1/customers")}async getDeviceSite(g){try{return await this.fetchJSON("GET",`/api/1/devices/${g}/site`)}catch{return null}}async getDevice(g){try{return await this.fetchJSON("GET",`/api/1/devices/${g}`)}catch{return null}}async getSite(g,E){try{return await this.fetchJSON("GET",`/api/1/customers/${g}/sites/${E}`)}catch{return null}}async createDevelopmentSite(g,E,Q){if(this.logger?.info(`Creating development site "${E.name}"...`),E.serialNumber){let s=await this.getSite(g,E.name.toLowerCase());if(s)try{return await this.fetchJSON("POST",`/api/1/customers/${g}/sites/${s._uid}/cn-attach-device`,{device_id:E.serialNumber,allow_overwrite:!0,detach_from_old_site:!0,acquire:!0,create:!0}),this.logger?.info(`Device attached to existing site ${s._uid}`),s._uid}catch(o){if(o.message&&!o.message.includes("304"))this.logger?.warn(`Could not attach device to existing site: ${o.message}`);else return s._uid}}let{_uid:e}=await this.fetchJSON("POST",`/api/1/customers/${g}/sites`,{name:E.name,create:!0,force:!0,note:"This is a Studio development site",applid:E.applicationId,device_id:E.serialNumber,reg_code:Q,servicetariff:"0000000000000000",servicetariff_indiv_cost:0});return this.logger?.info(`Development site created: ${e}`),e}async updateSiteName(g,E){try{await this.fetchJSON("PUT",`/api/1/sites/${g}`,{name:E})}catch{}}};function $E(B){return(0,zE.v5)(B,Co)}async function GC(B,g,E,Q,e,s,o){let n=await T.read(B,g),w=e.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),y=n.name.replaceAll(" ","_").replace(/[^a-zA-Z0-9-]+/g,""),F=await T.isApmPartEnabled(B,g,IA.Part.dlo,n),l=F&&Q,U=l?Q.toUpperCase():`${y}_${w}`,f=l?Q:U,d=o||U;return d.length>50&&(E.warn(`Site name "${d}" is too long. Truncating to 50 characters.`),d=d.substring(0,50)),{apmId:$E(f),applicationId:null,name:d,version:1,serialNumber:F?Q:void 0,siteUid:null,customerUid:s}}async function Ae(B,g,E,Q,e,s,o=!1){if(s.length>0)for(let n of s){let[w,y]=n.split("@");await mA.installDependency(B,g,E,Q,e,w,y||null,o)}else await mA.installDependencies(B,g,E,Q,e);await mA.installNpmInApmParts(B,g,E)}async function Qe(B,g,E,Q,e=null,s=!0,o){return await T.validateBasicManifest(B,g,null),TA.buildAll(B,g,E,Q,e,s,o)}async function Eo(B){let g=null;if(B){g=B==="*"?B:B.split(";");let E=await T.validateRegistryAllowedBackends(g);if(E)throw new Error(E)}return g}async function Be(B,g,E,Q,e,s,o,n){E.info("Publishing package...");let w=await Eo(s);if(n)await TA.publishArchive(B,g,E,e,Q,n,o,w);else return await TA.validatePublishSettings(B,g,e,Q),TA.release(B,g,E,Q,e,o,w)}async function ge(B,g,E,Q,e,s){return TA.pack(B,g,E,Q,e,s)}var EB=fA.DDEContainerName,Ie=fA.allowedRelationTypes,eo=fA.regexRelation,io=fA.ContainerType,to=fA.checkForReservedFieldName,gI=fA.ContainerName,oo=fA.CONTAINER_DEFS,so=fA.SERVER_CONTAINER,ro=fA.HISTDATA_CONTAINER,ao=fA.CONFIG_CONTAINER,fC=fA.TransferDirection,Ce=fA.fieldTypeDefinitions,lQ=sA.yamlRangeToLineInformation,II;(g=>{class B{constructor(Q,e,s){this.manifest=Q;this.libraryFiles=e;this.ddeHistory=s}fieldNamesPerContainer={};usedContainerNames={};fileDiagnostics=[];libraryDDE=[];libraryYaml={};parseLibraries(){this.libraryDDE.length=0;let Q=[];return this.libraryFiles.forEach(e=>{let{parsedDDE:s,diagnostics:o,parsedYaml:n}=this.parseYamlFile(e.path,e.yaml,e.libraryName);Q.push(...o),this.libraryDDE.push(s),this.libraryYaml[e.libraryName]=n}),Q}get previousVersion(){return{setPointList:{...this.ddeHistory?.setPointList},containers:{...this.ddeHistory?.containers}}}getContainerOfPreviousVersion(Q){let e=this.previousVersion,s=Q.startsWith("timeseries_")?Q.substring(11):Q;return Object.values(e.containers).find(o=>o.title===s)||null}parseMainDDE(Q,e){let{parsedDDE:s,diagnostics:o}=this.parseYamlFile(Q,e);return o.find(y=>y.level==="error")?{ddeJSON:null,diagnostics:o}:{ddeJSON:this.mergeAndFormat(s),diagnostics:o}}parseYamlFile(Q,e,s){this.fileDiagnostics.length=0;let o=new CB.LineCounter,n=(0,CB.parseDocument)(e,{lineCounter:o});if(!n.contents)return{parsedDDE:{containers:{},setPointList:{}},diagnostics:[],parsedYaml:null};let w=n.contents||new CB.YAMLMap;return this.validateContainerDefinition(w.items).forEach(F=>{this.validateAllowedContainer(Q,F,o,s),this.validateContainerFields(n,Q,F,o)}),{parsedDDE:this.yamlDocToDdeJson(n.toJS({mapAsMap:!0}),s),diagnostics:[...this.fileDiagnostics],parsedYaml:n}}yamlDocToDdeJson(Q,e){let s={containers:{},setPointList:{}},o=new Map,n=[...Object.values(EB)];if(Q.get("cloudProject")){let y=Object.values(this.previousVersion.containers).map(l=>l.title),F=[...new Set([...n,...y])];n.length=0,n.push(...F)}for(let y of n)Q.has(y)&&o.set(y,Q.get(y));let w=Q.get("timeseries");if(w)for(let[y,F]of w)o.set(y,F);for(let[y,F]of o){let{realContainer:l,transferDirection:U,legacyTitle:f}=this.getRealContainerInformation(y);if(!l)continue;let d=oo[l],G=y.includes("timeseries_")?y.replace("timeseries_",""):y,k={name:l,title:G,previousTitle:f,containerType:d.ctype,volatile:y===EB.volatile,transferDirection:U,fieldCount:F.size,knownNames:[],libraries:[],arrays:{},shadows:{},fields:[],size:0,fieldIndex:0};e&&k.libraries.push(e);for(let[R,M]of F){let m=[],H=M.get("type"),L=Ce[H];if(!(!L&&H!=="array")){if(H==="array"){let J=[],q=M.get("length"),Y=M.get("fields"),b={name:R,length:q,library:e||null,fields:[]};k.arrays[R]=b;for(let v=0;v<q;v++){let j={name:R,index:v};for(let[z,O]of Y){let x=Ce[O.get("type")];if(!x)continue;b.fields?.find(aA=>aA.name===z)||b.fields.push({name:z,type:O.get("type"),byteSize:x.len||O.get("bytes")||O.get("length")});let K=`${R}[${v}].${z}`,{fields:X,shadowInfo:BA}=this.createDDEJsonFields(K,e,x,O);X.forEach(aA=>{aA.arrayRef=j}),BA&&(k.shadows[BA.name]=BA),J.push(...X)}}m.push(...J)}else{let{arrayInfo:J,fields:q,shadowInfo:Y}=this.createDDEJsonFields(R,e,L,M);J&&(k.arrays[J.name]=J),Y&&(k.shadows[Y.name]=Y),m.push(...q)}m.forEach(J=>{J.index=++k.fieldIndex,k.fields.push(J),k.size+=J.byteSize})}}s.containers[l]=k}return s}getRealContainerInformation(Q){let e,s,o;if(this.previousVersion){let n=Q.startsWith("timeseries_")?Q.substring(11):Q,{name:w,direction:y,previousTitle:F}=this.findPreviousUsedContainer(n);e=w,s=y,o=F}if(!e){let n=Object.entries(this.usedContainerNames).find(([,w])=>w===Q);n&&(e=n[0])}return e||(e=this.findNextFreeContainer(Q)),this.usedContainerNames[e]=Q,s||(s=[EB.setting,EB.command].includes(Q)?fC.down:fC.up),e&&[gI.configA,gI.configB].includes(e)&&(s=fC.backendOnly),{realContainer:e,transferDirection:s,legacyTitle:o}}findNextFreeContainer(Q){if(Q===gI.aloha)return gI.aloha;let e=ao;Q.startsWith("timeseries_")?e=ro:[EB.relations,EB.storage].includes(Q)&&(e=so);let s=this.previousVersion?.containers;return s&&(e=e.filter(o=>!Object.hasOwn(s,o))),e.find(o=>!Object.hasOwn(this.usedContainerNames,o))}findPreviousUsedContainer(Q){let e=this.previousVersion.containers,s=Object.values(e).find(o=>o.title===Q);return{name:s?.name,direction:s?.transferDirection,previousTitle:s?.previousTitle}}createDDEJsonFields(Q,e,s,o){let n=o.get("array"),w=[],y,F;if(n){y={name:Q,library:e||null,length:n};for(let l=0;l<n;l++){let U=`${Q.toLowerCase()}[${l}]`;w.push(this.buildDDEJsonField(U,o,{name:Q,index:l},s,e,null))}}else{let l=this.buildDDEJsonField(Q,o,null,s,e,null);w.push(l);let U=o.get("shadowFields");if(U){F={name:l.name,byteSize:l.byteSize,byteOffset:l.byteOffset};for(let[f,d]of U){let G=f;Q.includes(".")&&(G=Q.split(".")[0]+`.${f}`),w.push(this.buildDDEJsonField(G,d,null,s,e,l.name))}}}return{arrayInfo:y,shadowInfo:F,fields:w}}buildDDEJsonField(Q,e,s,o,n,w){return{id:Q.toLowerCase(),name:Q,index:0,library:n||null,byteOffset:0,byteSize:o.len||e.get("bytes")||e.get("length"),type:e.get("type"),title:e.get("title")||null,arrayRef:s,shadowRef:w,unit:e.get("unit"),hex:e.get("hex"),decimalPlaces:e.get("decimalPlaces"),writePermission:this.parseUserLevel(e.get("writePermission")),readPermission:this.parseUserLevel(e.get("readPermission")),channelMode:this.parseChannelMode(e.get("channelMode")),defaultValue:e.get("defaultValue"),scale:e.get("scale"),offset:e.get("offset"),chartMinimum:e.get("chartMinimum"),description:e.get("description"),chartMaximum:e.get("chartMaximum"),chartAlarmLow:e.get("chartAlarmLow"),chartAlarmHigh:e.get("chartAlarmHigh"),chartWarningLow:e.get("chartWarningLow"),chartWarningHigh:e.get("chartWarningHigh"),chartHysteresis:e.get("chartHysteresis"),chartTriggerThreshold:e.get("chartTriggerThreshold"),chartTriggerRelation:this.parseTriggerUndershoot(e.get("chartTriggerRelation")),chartSetPoint:e.get("chartSetPoint"),utilsTransferInterval:!!e.get("utilsTransferInterval"),bitmask:e.get("bitmask")}}resolvePossibleAlias(Q,e){return(0,CB.isAlias)(e)?e.resolve(Q).value:e?.value}validateContainerDefinition(Q){let e=[];return Q.forEach(s=>{let n=s.key.value;n==="timeseries"?s.value.items.forEach(w=>{w.key.value=`timeseries_${w.key}`,e.push(w)}):["dde","cloudProject","constants"].includes(n)||e.push(s)}),e}parseUserLevel(Q){if(Q==="read-only")return 99;if(Q?.startsWith("UL"))return Number(Q.substring(2))}parseChannelMode(Q){if(Q)return{digital:1,"day-counter":2,"interval-counter":3,analog:6,"infinite-counter":12}[Q]??Q}parseTriggerUndershoot(Q){if(Q)return{"greater-or-equal":0,"less-or-equal":1}[Q]??Q}validateAllowedContainer(Q,e,s,o){if(!e.value)return;let w=e.key.value;if(o&&(w.startsWith("aloha")||w.startsWith("timeseries"))){let y=w.includes("_")?w.split("_")[1]:w;this.fileDiagnostics.push({file:Q,level:"error",message:`"${y}" not allowed within a library`,...lQ(s,e.key.range)})}if(T.isAnalytics(this.manifest)&&![EB.relations,EB.storage].includes(w)){let y=w.includes("_")?w.split("_")[1]:w;this.fileDiagnostics.push({file:Q,level:"error",message:`"${y}" not allowed within an analytics app. Only "relations" and "storage" are allowed.`,...lQ(s,e.key.range)})}}validateContainerFields(Q,e,s,o){let n=s.value;if(!n)return;let w=s.key.value;Object.hasOwn(this.fieldNamesPerContainer,w)||(this.fieldNamesPerContainer[w]=[]);let y=this.getContainerOfPreviousVersion(w);n.items.forEach(F=>{let U=F.key.value;this.checkForContainerRelation(F,Q,e,o),this.validateFieldName(F,w,e,o),this.checkFieldNameLength(F,w,e,o);let f=y?.fields.find(m=>m.id===U.toLowerCase()),d=F.value,G=d.get("type",!0),k=this.resolvePossibleAlias(Q,G),R=d.get("bytes",!0),M=this.resolvePossibleAlias(Q,R);f&&(G&&k&&f.type!==k&&this.fileDiagnostics.push({file:e,level:"warning",message:`Field type changed from "${f.type}" to "${k}".
146
146
  Changing the type of an existing field can result in data loss or unexpected behaviour.`,...lQ(o,G.range)}),R&&M&&f.byteSize!==M&&this.fileDiagnostics.push({file:e,level:"warning",message:`Byte size changed from '${f.byteSize}' to '${M}'.
147
147
  Changing the size of an existing field can result in data loss or unexpected behaviour.`,...lQ(o,R.range)}))})}checkForContainerRelation(Q,e,s,o){let n=Q.value.get("fields");n&&n.items.forEach(y=>{this.checkForContainerRelation(y,e,s,o)}),Q.value.items.forEach(y=>{let F=y.value;if(F?.value&&eo.exec(`${F.value}`)){let l=y.key.value;if(l){if(!Object.hasOwn(Ie,l))return this.fileDiagnostics.push({file:s,level:"error",message:`Property "${l}" does not allow relations.`,...lQ(o,F.range)});if(["scale","offset"].includes(l))return this.fileDiagnostics.push({file:s,level:"warning",message:`Container relations for "${l}" are not available within the dlo source.`,...lQ(o,F.range)})}return this.validateContainerRelation(l,F,e,s,o)}})}validateFieldName(Q,e,s,o){let n=this.fieldNamesPerContainer[e],w=Q.key,y=w.value;to(y)&&this.fileDiagnostics.push({file:s,level:"error",message:`Reserved property "${y}" is not allowed.`,...lQ(o,w.range)});let F=Q.value.get("shadowFields");F&&F.items.forEach(l=>{this.validateFieldName(l,e,s,o)}),n.includes(y.toLowerCase())?this.fileDiagnostics.push({file:s,level:"error",message:`Field name "${y}" is already occupied`,...lQ(o,w.range)}):n.push(y.toLowerCase())}checkFieldNameLength(Q,e,s,o){let n=Q.key,w=n.value,F=`DDE_${e.startsWith("timeseries")?e.substring(10):e}_`,l=31-F.length;F.length+w.length>31&&this.fileDiagnostics.push({file:s,level:"error",code:_g.CODE.ddeFieldLength,message:`Field name "${w}" to long. ${l} characters allowed for this field/container.`,...lQ(o,n.range)})}validateContainerRelation(Q,e,s,o,n){let[w,y,F]=e.value.split(".",3),[l,U]=w.split("@"),f=l?l.split(":")[1]:null,G=(f&&this.libraryYaml[f]?this.libraryYaml[f]:s).contents?.get(U),k=y.split("[")[0],R=null;if(G){let M=G.get(k);if(M)if(F){let m=M.get("fields");m&&m.get(F)&&(R=m.get(F))}else R=M;else R=this.findRelatedShadowField(G,k)}if(R){let M=Ie[Q],m=R.get("type");M.includes(m)||this.fileDiagnostics.push({file:o,level:"error",message:`Related field type "${m}" is not allowed for attribute "${Q}".`,...lQ(n,e.range)})}else f&&!this.libraryYaml[f]?this.fileDiagnostics.push({file:o,level:"error",message:`Related library "${f}" does not exist.`,...lQ(n,e.range)}):this.fileDiagnostics.push({file:o,level:"error",message:`Related field "${e.value}" does not exist.`,...lQ(n,e.range)})}findRelatedShadowField(Q,e){for(let s of Q.items){let n=s.value.get("shadowFields");if(!n)continue;let w=n.get(e);if(w)return w}}mergeAndFormat(Q){let e={containers:{},setPointList:{}};for(let s of this.libraryDDE)this.combineDDE(e,s);return this.combineDDE(e,Q),this.sortContainerFields(e),this.generateSetPointList(e),e}combineDDE(Q,e){for(let[s,o]of Object.entries(e.containers)){let n=Q.containers[s];n?(n.title=o.title,n.knownNames.unshift(o.title),n.libraries.push(...o.libraries),n.fields.push(...o.fields),n.arrays={...n.arrays,...o.arrays},n.shadows={...n.shadows,...o.shadows}):(n=Q.containers[s]=structuredClone(o),n.knownNames.unshift(o.title),n.fieldCount=n.fields.length,n.fieldIndex=0);let w=this.initialContainerByteOffset(n);for(let[y,F]of n.fields.entries()){if(F.shadowRef){let l=n.shadows[F.shadowRef];F.byteOffset=l.byteOffset}else F.byteOffset=w,this.updateShadowFieldInformation(Q.containers[s],F),w+=F.byteSize||0;y>n.fieldCount-1&&(F.index+=n.fieldIndex)}n.fieldIndex+=o.fieldIndex,n.knownNames=[...new Set(n.knownNames)],n.libraries=[...new Set(n.libraries)],n.fieldCount=n.fields.length}}initialContainerByteOffset(Q){return Q.containerType===io.hx?1:0}updateShadowFieldInformation(Q,e){e&&Object.hasOwn(Q.shadows,e.name)&&(Q.shadows[e.name].byteOffset=e.byteOffset)}sortContainerFields(Q){for(let e of Object.values(Q.containers)){let{sortedFields:s,containerSize:o}=this.sortFields(e);e.fields=s,e.size=o,e.fieldCount=e.fields.length}}sortFields(Q){let e=Q.fields.filter(l=>!l.shadowRef),s=Q.fields.filter(l=>l.shadowRef),o=[],n=Q.name;if(this.previousVersion.containers[n]){let l=this.sortPreviousContainerFields(Q,e);o.push(...l)}else o.push(...e);o.forEach(l=>{this.updateShadowFieldInformation(Q,l)});let y=o[o.length-1],F=y.byteSize+y.byteOffset;return s.forEach(l=>{l.byteOffset=Q.shadows[l.shadowRef].byteOffset,o.push(l)}),{sortedFields:o,containerSize:F}}sortPreviousContainerFields(Q,e){let s=Q.name,o=this.previousVersion.containers[s],n=[],w=this.initialContainerByteOffset(Q);for(let y of o.fields){if(y.shadowRef)continue;let F=e.findIndex(U=>y.id===U.name?.toLowerCase());if(F===-1){w=y.byteOffset+y.byteSize;continue}let l=e[F];if(y.type!==l.type&&y.byteSize!==l.byteSize){w=y.byteOffset+y.byteSize;continue}l.byteOffset=y.byteOffset,e.splice(F,1),n.push(l),w=this.initialContainerByteOffset(Q)}if(w>this.initialContainerByteOffset(Q)){let y=e.shift();n.push(...this.generatePlaceholderFieldIfNeeded(w,y)),this.updateShadowFieldInformation(Q,y)}for(let y of e){if(y.shadowRef)y.byteOffset=Q.shadows[y.shadowRef].byteOffset;else{this.updateShadowFieldInformation(Q,y);let F=n[n.length-1];F.shadowRef&&(F=Q.shadows[F.shadowRef]),y.byteOffset=F.byteOffset+F.byteSize}n.push(y)}return n}generatePlaceholderFieldIfNeeded(Q,e){let s=[];if(e)e.byteOffset=Q,s.push(e);else{let o={byteOffset:Q,byteSize:0,id:"_shadow",library:null,name:"_shadow",type:"shadow",arrayRef:null,shadowRef:null,title:null,index:0};s.push(o)}return s}generateSetPointList(Q){Q.setPointList={...this.previousVersion.setPointList||{}};for(let e of Object.values(Q.containers))for(let s of e.fields)s.chartSetPoint&&(Object.hasOwn(Q.setPointList,s.name)||(Q.setPointList[s.name]=this.getNextSetpointValue(Q.setPointList)))}getNextSetpointValue(Q){let e=[...Object.values(Q),0];return Math.max(...e)+1}}g.PreCompiler=B})(II||={});var sQ=fA.TransferDirection,pQ=fA.parseXMLValueWithRelation,no=fA.parseXMLBitmask,Do=fA.parseXMLDefaultValue,co=fA.fieldTypeDefinitions;function MC(B,g){let Q=[];function e(n,w=!0){if(w){if(Array.isArray(n)){Q.push.apply(Q,n);return}Q.push(""+n)}}function s(n,w){n!=="mergeofs"&&e(`${n}=${w}`)}e("// DDE STRUCTURE created by Microtronics Studio");let o="source=rm2mraw";for(let[n,w]of Object.entries(g.containers)){n.startsWith("histdata")&&w.transferDirection!==sQ.deviceOnly&&(e("<split>"),e(o),e("target="+n),e("key=0"+n.substr(-1,1)),e("</split>")),e("<table>"),s("name",n),s("alias",w.title),s("title",w.title.replace("_"," "));let y={};[sQ.none,sQ.backendOnly,sQ.deviceOnly,sQ.down,sQ.downPlus].includes(w.transferDirection)&&s("upload","0"),[sQ.none,sQ.backendOnly,sQ.deviceOnly,sQ.up,sQ.upPlus].includes(w.transferDirection)&&s("download","0"),(T.isIotApp(B)||T.isLibrary(B))&&[sQ.up,sQ.upPlus].includes(w.transferDirection)&&s("edit","99");for(let F of w.fields){if(F.type==="shadow")continue;let l=wo(F),U=co[l.type],f=pQ("title",l,g)||l.name;!f.startsWith("%")&&l.library&&(f=`${l.library}: ${f}`);let d={title:f,alias:l.name,index:F.index,...y};d.byteofs=`${l.byteOffset}`;for(let[G,k]of Object.entries(U.xml))d[G]=k;Object.hasOwn(U,"xmlOut")&&U.xmlOut(d,l,g),d.units=pQ("unit",l,g),d.chmode=pQ("channelMode",l,g),d.ialarm_high=pQ("chartAlarmHigh",l,g),d.ialarm_low=pQ("chartAlarmLow",l,g),d.iwarn_high=pQ("chartWarningHigh",l,g),d.iwarn_low=pQ("chartWarningLow",l,g),d.hysterese=pQ("chartHysteresis",l,g),d.itrigger=pQ("chartTriggerThreshold",l,g),d.itriggerus=pQ("chartTriggerRelation",l,g),d.setpoint=pQ("chartSetPoint",l,g),d.bitmask=no(l),l.hex&&(d.editmask="%HEX%"),l.readPermission&&(d.view=l.readPermission),l.writePermission&&(d.edit=l.writePermission),l.defaultValue!==void 0&&(d.default=Do(l)),l.utilsTransferInterval===!0&&(d.param0="%FFFF0005%transfer_interval"),e("<field>"),l.library&&e(`// declared by ${l.library} library`,!0);for(let[G,k]of Object.entries(d))k!==void 0&&s(G,`${k}`);e("</field>")}["alerts","applog"].includes(n)||(e("</table>"),e("// "+w.size+" bytes total size"))}return e("<split>"),e(o),e("target=alarm0"),e("key=20"),e("</split>"),e("<split>"),e(o),e("target=applog0"),e("key=28"),e("</split>"),Q.join(`
148
148
  `)}function wo(B){let g=structuredClone(B),E=B.arrayRef?.index;if(E===void 0)return g;for(let[Q,e]of Object.entries(g))g[Q]=sA.patchValueWithArrayInfo(e,E);return g}var HQ=xA(require("semver"));var jQ=xA(require("semver"));var kC=require("vscode-uri");var jA=fA.ContainerType,yA=fA.TransferDirection,Dg=fA.regexRelation,yo=fA.CONFIG_CONTAINER,pC=fA.CONTAINER_DEF_DLO_CID_BASE,cg=fA.CONTAINER_DEFS,LC=fA.fieldTypeDefinitions,Ee=sA.isNumeric;function CI(B){let g=LC[B.type];return g.pwn.rwp||(g.pwn.rwp="%n"),g.pwn.htype||(g.pwn.htype=g.pwn.rwfunc),g.pwn}var EI="Microtronics/dlo-core";function ie(B){return T.isLibrary(B)&&B.name==="dlo-core"?B.version:B.libraryDependencies&&Object.hasOwn(B.libraryDependencies,EI)?mA.rangeToVersion(B.libraryDependencies[EI]):B.libraryDevDependencies&&Object.hasOwn(B.libraryDevDependencies,EI)?mA.rangeToVersion(B.libraryDevDependencies[EI]):null}function lo(B){let g=ie(B);return g===null||jQ.gte(g,"0.3.0")?jQ.valid(B.version)?B.version:jQ.coerce(`${B.version}`):jQ.coerce(B.version)?.major}function UC(B){let g=ie(B);if(g===null)return!1;let E=jQ.coerce(g);return jQ.gte(E,"1.1.0")}function te(B,g,E){let Q=[],e=Q.push.bind(Q);function s(Y){e(`
@@ -2412,9 +2412,10 @@ export declare enum HttpMethod {
2412
2412
  * @param {Globals.ENV} env - The global environment configuration used during the installation.
2413
2413
  * @param {string|null} apiToken - The API token for authentication, if required, or null if not applicable.
2414
2414
  * @param {string[]} dependencies - An array of dependency strings in the format "libraryId@version". If empty, all dependencies will be installed.
2415
+ * @param {Boolean} development - If true, installs the dependencies as development dependency.
2415
2416
  * @return {Promise<void>} A promise that resolves when the installation process completes successfully or logs an error if it fails.
2416
2417
  */
2417
- export declare function install(cwd: URI, fs: LocalFS, logger: Log.Logger, env: Globals.ENV, apiToken: string | null, dependencies: string[]): Promise<void>;
2418
+ export declare function install(cwd: URI, fs: LocalFS, logger: Log.Logger, env: Globals.ENV, apiToken: string | null, dependencies: string[], development?: boolean): Promise<void>;
2418
2419
 
2419
2420
  export declare namespace Library {
2420
2421
  /**
package/out/api.js CHANGED
@@ -50,13 +50,14 @@ Object.defineProperty(exports, "Log", { enumerable: true, get: function () { ret
50
50
  * @param {Globals.ENV} env - The global environment configuration used during the installation.
51
51
  * @param {string|null} apiToken - The API token for authentication, if required, or null if not applicable.
52
52
  * @param {string[]} dependencies - An array of dependency strings in the format "libraryId@version". If empty, all dependencies will be installed.
53
+ * @param {Boolean} development - If true, installs the dependencies as development dependency.
53
54
  * @return {Promise<void>} A promise that resolves when the installation process completes successfully or logs an error if it fails.
54
55
  */
55
- async function install(cwd, fs, logger, env, apiToken, dependencies) {
56
+ async function install(cwd, fs, logger, env, apiToken, dependencies, development = false) {
56
57
  if (dependencies.length > 0) {
57
58
  for (const dependency of dependencies) {
58
59
  const [libraryId, version] = dependency.split('@');
59
- await dependencies_1.Dependencies.installDependency(cwd, fs, logger, env, apiToken, libraryId, version || null);
60
+ await dependencies_1.Dependencies.installDependency(cwd, fs, logger, env, apiToken, libraryId, version || null, development);
60
61
  }
61
62
  }
62
63
  else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microtronics/studio-cli",
3
- "version": "0.56.0",
3
+ "version": "0.57.0",
4
4
  "description": "Microtronics Studio CLI Tool",
5
5
  "main": "./out/api.js",
6
6
  "typings": "./dist/studio-cli.d.ts",