coffee-ahk
Version:
coffeescript -> ahk
2 lines (1 loc) • 40.3 kB
JavaScript
"use strict";var e=require("coffeescript"),t=require("lodash"),n=require("kleur");var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var i="object"==typeof s&&s&&s.Object===Object&&s,o="object"==typeof self&&self&&self.Object===Object&&self,a=(i||o||Function("return this")()).Symbol;var c=function(e,t){for(var n=-1,s=null==e?0:e.length,r=Array(s);++n<s;)r[n]=t(e[n],n,e);return r},l=Array.isArray,u=a,p=Object.prototype,f=p.hasOwnProperty,d=p.toString,h=u?u.toStringTag:void 0;var g=function(e){var t=f.call(e,h),n=e[h];try{e[h]=void 0;var s=!0}catch(e){}var r=d.call(e);return s&&(t?e[h]=n:delete e[h]),r},v=Object.prototype.toString;var y=g,w=function(e){return v.call(e)},m=a?a.toStringTag:void 0;var b=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":m&&m in Object(e)?y(e):w(e)};var _=b,S=function(e){return null!=e&&"object"==typeof e};var k=function(e){return"symbol"==typeof e||S(e)&&"[object Symbol]"==_(e)},x=c,E=l,C=k,j=a?a.prototype:void 0,I=j?j.toString:void 0;var F=function e(t){if("string"==typeof t)return t;if(E(t))return x(t,e)+"";if(C(t))return I?I.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n},W=/\s/;var O=function(e){for(var t=e.length;t--&&W.test(e.charAt(t)););return t},A=/^\s+/;var M=function(e){return e?e.slice(0,O(e)+1).replace(A,""):e};var G=function(e,t,n){var s=-1,r=e.length;t<0&&(t=-t>r?0:r+t),(n=n>r?r:n)<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(r);++s<r;)i[s]=e[s+t];return i},T=G;var R=function(e,t,n){var s=e.length;return n=void 0===n?s:n,!t&&n>=s?e:T(e,t,n)};var L=function(e,t,n,s){for(var r=e.length,i=n+(s?1:-1);s?i--:++i<r;)if(t(e[i],i,e))return i;return-1},$=function(e){return e!=e},D=function(e,t,n){for(var s=n-1,r=e.length;++s<r;)if(e[s]===t)return s;return-1};var B=function(e,t,n){return t==t?D(e,t,n):L(e,$,n)},N=B;var q=function(e,t){for(var n=e.length;n--&&N(t,e[n],0)>-1;);return n},P=B;var U=function(e,t){for(var n=-1,s=e.length;++n<s&&P(t,e[n],0)>-1;);return n};var H=function(e){return e.split("")},K=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var V=function(e){return K.test(e)},z="\\ud800-\\udfff",Q="["+z+"]",J="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",X="\\ud83c[\\udffb-\\udfff]",Y="[^"+z+"]",Z="(?:\\ud83c[\\udde6-\\uddff]){2}",ee="[\\ud800-\\udbff][\\udc00-\\udfff]",te="(?:"+J+"|"+X+")"+"?",ne="[\\ufe0e\\ufe0f]?",se=ne+te+("(?:\\u200d(?:"+[Y,Z,ee].join("|")+")"+ne+te+")*"),re="(?:"+[Y+J+"?",J,Z,ee,Q].join("|")+")",ie=RegExp(X+"(?="+X+")|"+re+se,"g");var oe=H,ae=V,ce=function(e){return e.match(ie)||[]};var le=function(e){return ae(e)?ce(e):oe(e)},ue=F;var pe=function(e){return null==e?"":ue(e)},fe=F,de=M,he=R,ge=q,ve=U,ye=le,we=pe;var me=function(e,t,n){if((e=we(e))&&(n||void 0===t))return de(e);if(!e||!(t=fe(t)))return e;var s=ye(e),r=ye(t),i=ve(s,r),o=ge(s,r)+1;return he(s,i,o).join("")},be=r(me);const _e=["..","?","?.","bin?","from","func_exist","import"],Se=(e,t)=>Array.isArray(e)?((e,t)=>e[t<0?e.length+t:t])(e,t):((e,t)=>e[t])(e,t);class ke{#e=[];next="";constructor(...e){this.reload(...e)}get last(){return this.at(-1)??""}get length(){return this.#e.length}get list(){return[...this.#e]}at(e){return Se(this.#e,e)}isEquals(e){const t=e instanceof ke?e.list:e;return this.#e.length===t.length&&this.#e.every(((e,n)=>e===t[n]))}pop(){return this.#e.pop()??""}push(...e){return this.#e.push(...e)}reload(e=[]){this.#e=e instanceof ke?e.list:e}shift(){return this.#e.shift()??""}slice(...e){return this.#e.slice(...e)}unshift(...e){return this.#e.unshift(...e)}}class xe{comment;scope;type;value;constructor(...e){if(e[0]instanceof xe){const{scope:t,type:n,value:s}=e[0];return this.type=n,this.value=s,void(this.scope=new ke(t))}this.type=e[0]??"void",this.value=(void 0===e[1]?e[0]:e[1])??"",this.scope=new ke(e[2])}clone(){const{scope:e,type:t,value:n}=this;return new xe(t,n,e)}is(e,t){return e===this.type&&(void 0===t||t===this.value)}}const Ee=(e,t=e.content.length-1)=>{const{content:n}=e,s=n.at(t);return s?s.is("edge","parameter-start")?t:Ee(e,t-1):0};var Ce=Math.floor;var je=function(e,t){var n="";if(!e||t<1||t>9007199254740991)return n;do{t%2&&(n+=e),(t=Ce(t/2))&&(e+=e)}while(t);return n};var Ie=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},Fe=b,We=Ie;var Oe=function(e){if(!We(e))return!1;var t=Fe(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},Ae=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991};var Me=/^(?:0|[1-9]\d*)$/;var Ge=function(e,t){return e===t||e!=e&&t!=t},Te=function(e){return null!=e&&Ae(e.length)&&!Oe(e)},Re=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&Me.test(e))&&e>-1&&e%1==0&&e<t},Le=Ie;var $e=M,De=Ie,Be=k,Ne=/^[-+]0x[0-9a-f]+$/i,qe=/^0b[01]+$/i,Pe=/^0o[0-7]+$/i,Ue=parseInt;var He=function(e){if("number"==typeof e)return e;if(Be(e))return NaN;if(De(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=De(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=$e(e);var n=qe.test(e);return n||Pe.test(e)?Ue(e.slice(2),n?2:8):Ne.test(e)?NaN:+e},Ke=1/0;var Ve=function(e){return e?(e=He(e))===Ke||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0};var ze=function(e){var t=Ve(e),n=t%1;return t==t?n?t-n:t:0},Qe=je,Je=function(e,t,n){if(!Le(n))return!1;var s=typeof t;return!!("number"==s?Te(n)&&Re(t,n.length):"string"==s&&t in n)&&Ge(n[t],e)},Xe=ze,Ye=pe;var Ze=r((function(e,t,n){return t=(n?Je(e,t,n):void 0===t)?1:Xe(t),Qe(Ye(e),t)}));const et=(e,t)=>{let n=e.substring(1,e.length-1);return n=n.replace(/%/g,"`%").replace(/\\b/g,"`b").replace(/\\n/g,"`n").replace(/\\r/g,"`r").replace(/\\t/g,"`t"),n=`"${n.replace(/"/g,'""')}"`,n=3===t.length?n.replace(/\s*\n\s*/g,""):n.replace(/\s*\n\s*/g," "),n},tt={"new-line":e=>{const{content:t,scope:n,type:s,value:r}=e;if("terminator"===s){if("\n"===r)return t.last.is("bracket","}-")&&(t.last.value="}"),["array","call","object","parameter"].includes(n.last)?(t.last.is("sign",",")||(t.last.is("new-line")&&t.pop(),t.push("sign",",")),!0):(t.push("new-line",e.indent.toString()),!0);if(";"===r)return t.last.is("bracket","}-")&&(t.last.value="}"),t.push("new-line",e.indent.toString()),!0}return!1},alias:e=>{const{content:t,type:n}=e;return"@"===n?(t.push("this"),!0):"::"===n&&(t.last.is(".")&&t.pop(),t.push(".").push("prototype"),!0)},array:e=>{const{content:t,scope:n,type:s}=e;return"["===s?(n.push("array"),t.push("edge","array-start"),!0):"]"===s&&(n.pop(),t.push("edge","array-end"),!0)},await:e=>{const{content:t,type:n}=e;return"await"===n&&(t.push("await"),!0)},boolean:e=>{const{content:t,type:n,value:s}=e;return"bool"===n&&(t.push("boolean",s),!0)},bracket:e=>{const{content:t,type:n,value:s}=e;return("("===n||")"===n)&&(t.push("bracket",s),!0)},class:e=>{const{content:t,scope:n,type:s}=e;return"class"===s?(n.next="class",t.push("class"),!0):"super"===s&&(t.push("super"),!0)},comment:e=>{const{content:t,token:n}=e;if(n.comments){const e=[];n.comments.forEach((t=>be(t.content,"\n ").split("\n").forEach((t=>e.push(t)))));const{last:s}=t;return s.comment=e,!0}return!1},do:e=>{const{content:t,type:n}=e;return("do"===n||"do_iife"===n)&&(t.push("native","__mark:do__"),!0)},for:e=>{const{content:t,scope:n,type:s,value:r}=e;if("for"===s)return n.push("for"),t.push("for"),!0;if(["forin","forof"].includes(s)){const e=[],n=t.pop();e.push(n.value);if(t.last.is("sign",",")){t.pop();const n=t.pop();e.unshift(n.value)}return"forin"===s&&e.reverse(),1===e.length&&e.unshift("forin"===s?"__index_for__":"__key_for__"),t.push("identifier",e[0]).push("sign",",").push("identifier",e[1]).push("for-in",r),!0}return!1},forbidden:e=>{const{type:t}=e;if(_e.includes(t))throw new Error(`ahk/forbidden: '${t}' is not allowed`);if("post_if"===t)throw new Error("ahk/forbidden: 'post-if' is not allowed");return!1},function:e=>{const{content:t,scope:n,type:s}=e;if(["->","=>"].includes(s))return((e,t)=>{const{content:n,scope:s}=e;if(n.last.is("edge","parameter-end")){if("=>"===t){const t=[...s.list,"parameter"];n.list.splice(Ee(e)+1,0,new xe("this","this",t),new xe("sign","=",t),new xe("this","this",t),new xe("sign",",",t))}}else n.at(-2)?.is("property","constructor")||n.push("identifier","anonymous"),s.push("parameter"),n.push("edge","parameter-start"),"=>"===t&&n.push("this").push("sign","=").push("this"),n.push("edge","parameter-end"),s.pop();return s.push("function"),!0})(e,s);if("call_start"===s){e.flag.isFunctionIncluded=!0;const{next:s}=n;return n.next="",n.push("call"),n.next=s,t.push("edge","call-start"),!0}if("call_end"===s){const e=[t.at(-3),t.at(-2),t.at(-1)];if(e[0]?.is("identifier","Native")&&e[1]?.is("edge","call-start")&&e[2]?.is("string")){e[0].type="void",e[1].type="void",e[2].scope.pop(),e[2].type="native";const{value:s}=e[2];return e[2].value=s.substring(1,s.length-1).replace(/`%/g,"%").replace(/"{2,}/g,'"'),t.push("void","call-end"),n.pop(),!0}return t.push("edge","call-end"),n.pop(),!0}return"param_start"===s?(e=>{const{content:t,scope:n}=e;return t.at(-2)?.is("property","constructor")||t.push("identifier","anonymous"),n.push("parameter"),t.push("edge","parameter-start"),!0})(e):"param_end"===s&&(t.push("edge","parameter-end"),n.pop(),!0)},if:e=>{const{content:t,scope:n,type:s,value:r}=e;return"if"===s?(n.next="if",t.push("if"),"unless"===r&&t.push("logical-operator","!"),t.push("edge","expression-start"),!0):"else"===s&&("switch"===n.last?(n.push("case"),t.push("new-line",e.indent.toString()).push("if","default"),!0):(n.next="else",t.push("if","else"),!0))},indent:e=>{const{content:t,scope:n,type:s}=e;if("indent"===s){if(t.last.is("sign","="))return!0;if(["array","call","object","parameter"].includes(n.last))return!0;e.indent++;const{last:s}=n;if(["case","for","function","switch"].includes(s)&&(["catch","class","else","if","while"].includes(n.next)||("case"===s&&t.push("sign",":"),t.push("edge","block-start"))),["catch","class","else"].includes(n.next)){const e=n.next;n.next="",n.push(e),t.push("edge","block-start")}if(["if","while"].includes(n.next)){t.push("edge","expression-end");const e=n.next;n.next="",n.push(e),t.push("edge","block-start")}return t.push("new-line",e.indent.toString()),!0}return"outdent"===s&&(t.last.is("bracket","}-")?(t.last.value="}",!0):!!["array","call","object","parameter"].includes(n.last)||(e.indent--,!n.length||(t.push("new-line",e.indent.toString()).push("edge","block-end"),n.pop(),!0)))},indentifier:e=>{const{content:t,type:n,value:s}=e;return"identifier"===n&&(t.push("identifier",s),!0)},module:e=>{const{content:t,type:n}=e;return"export"===n&&(t.push("statement","export"),!0)},native:e=>{const{content:t,type:n,value:s}=e;return"js"===n&&(t.push("native",s),!0)},nil:e=>{const{content:t,type:n}=e;return!!["nan","null","undefined"].includes(n)&&(t.push("string",'""'),!0)},number:e=>{const{content:t,type:n,value:s}=e;if("number"===n){let e=s;if(s.includes("n"))throw new Error("ahk/forbidden: 'BigInt' is not allowed");if(s.includes("_")&&(e=e.replace(/_/g,"")),s.includes("e")){const[t,n]=e.split("e");e=`${t}${Ze("0",parseInt(n,10))}`}return t.push("number",e),!0}return!1},object:e=>{const{content:t,scope:n,token:s,type:r}=e;return"{"===r?"class"===n.last&&!t.last.is("sign","=")||(t.last.is("new-line")&&s.generated&&t.pop(),n.push("object"),t.push("bracket","{"),!0):"}"===r&&("class"===n.last||(s.generated&&"number"==typeof s.origin?.indentSize?t.push("bracket","}-"):t.push("bracket","}"),n.pop()),!0)},operator:e=>{const{content:t,token:n,type:s,value:r}=e;if("+"===s){if(!n.spaced){const{last:e}=t;if("math"===e.type||"negative"===e.type)return"negative"===e.type&&(e.type="math"),t.push("negative","+"),!0}return t.push("math","+"),!0}if("-"===s){if(!n.spaced){const{last:e}=t;if(!["identifier","math"].includes(e.type))return"negative"===e.type&&(e.type="math"),t.push("negative","-"),!0}return t.push("math","-"),!0}return"++"===s?(t.push("++"),!0):"--"===s?(t.push("--"),!0):"**"===s?(t.push("math","**"),!0):"&&"===s||"||"===s?(t.push("logical-operator",r),!0):"unary"===s&&"!"===r||"unary_math"===s?(t.push("logical-operator","!"),!0):"compare"===s?(t.push("compare",r),!0):("compound_assign"===s||"math"===s)&&(t.push("math",r),!0)},property:e=>{const{content:t,type:n,value:s}=e;return"."===n?(t.push("."),!0):"index_start"===n?("."===t.last.type&&t.pop(),t.push("edge","index-start"),!0):"index_end"===n?(t.push("edge","index-end"),!0):"property"===n&&(["prototype","this"].includes(t.last.type)&&t.push("."),t.push("property",s),!0)},sign:e=>{const{content:t,scope:n,type:s}=e;if("..."===s){if(!["call","parameter"].includes(n.last))throw new Error("ahk/forbidden: '...' is not allowed");t.push("sign","...")}return"="===s?(t.push("sign","="),!0):","===s?(t.push("sign",","),!0):":"===s&&("class"===n.last?(t.push("sign","="),!0):(t.push("sign",":"),!0))},statement:e=>{const{content:t,type:n,value:s}=e;return"extends"===n?(t.push("statement","extends"),!0):"return"===n?(t.push("statement","return"),!0):"throw"===n?(t.push("statement","throw"),!0):"statement"!==n||"break"!==s&&"continue"!==s?"unary"===n&&"new"===s&&(t.push("statement","new"),!0):(t.push("statement",s),!0)},string:e=>{const{content:t,token:n,type:s,value:r}=e;return"string"===s?(t.push("string",et(r,n[1].quote??"")),!0):"interpolation_start"===s?(t.push("edge","interpolation-start"),!0):"interpolation_end"===s&&(t.push("edge","interpolation-end"),!0)},switch:e=>{const{content:t,scope:n,type:s}=e;return"switch"===s?(n.push("switch"),t.push("if","switch"),!0):"leading_when"===s&&(n.push("case"),t.push("if","case"),!0)},try:e=>{const{content:t,scope:n,type:s}=e;return"catch"===s?(n.next="catch",t.push("try","catch"),!0):"finally"===s?(t.push("try","finally"),n.push("finally"),t.push("edge","block-start"),!0):"try"===s&&(t.push("try"),n.push("try"),t.push("edge","block-start"),!0)},while:e=>{const{content:t,scope:n,type:s}=e;return"loop"===s?(n.next="while",t.push("while").push("edge","expression-start").push("boolean","true"),!0):"while"===s?(n.next="while",t.push("while").push("edge","expression-start"),!0):"until"===s&&(n.next="while",t.push("while").push("logical-operator","!").push("edge","expression-start"),!0)}},nt=e=>{for(const t of Object.keys(tt))if("comment"!==t&&tt[t](e))break;tt.comment(e)};class st{#e=[];scope;constructor(e){this.scope=e}get last(){return this.at(-1)??new xe}get length(){return this.#e.length}get list(){return[...this.#e]}at(e){return Se(this.#e,e)}pop(){return this.#e.pop()??new xe}push(...e){const t=new xe(...e);return t.scope.length||t.scope.reload(this.scope),this.#e.push(t),this}reload(e=this.#e){const t=[];return e.forEach((e=>{e.is("void")||t.push(e)})),this.#e=t,this}shift(){return this.#e.shift()??new xe}unshift(...e){const t=new xe(...e);return t.scope.length||t.scope.reload(this.scope),this.#e.unshift(t),this}}const rt=[{type:"native",value:"global ",scope:[]},{type:"identifier",value:"__ci_salt__",scope:[]},{type:"sign",value:"=",scope:[]},{type:"function",value:"anonymous",scope:[]},{type:"edge",value:"parameter-start",scope:["parameter"]},{type:"identifier",value:"__ipt__",scope:["parameter"]},{type:"edge",value:"parameter-end",scope:["parameter"]},{type:"edge",value:"block-start",scope:["function"]},{type:"new-line",value:"1",scope:["function"]},{type:"native",value:"if __ipt__ is Number",scope:["function"]},{type:"new-line",value:"1",scope:["function"]},{type:"native",value:" return __ipt__ + 1",scope:["function"]},{type:"new-line",value:"1",scope:["function"]},{type:"statement",value:"return",scope:["function"]},{type:"identifier",value:"__ipt__",scope:["function"]},{type:"new-line",value:"0",scope:["function"]},{type:"edge",value:"block-end",scope:["function"]},{type:"new-line",value:"0",scope:[]}].map((e=>new xe(e.type,e.value,e.scope))),it=[{type:"native",value:"global ",scope:[]},{type:"identifier",value:"__rf_salt__",scope:[]},{type:"sign",value:"=",scope:[]},{type:"function",value:"anonymous",scope:[]},{type:"edge",value:"parameter-start",scope:["parameter"]},{type:"identifier",value:"__fn__",scope:["parameter"]},{type:"sign",value:",",scope:["parameter"]},{type:"identifier",value:"__token__",scope:["parameter"]},{type:"edge",value:"parameter-end",scope:["parameter"]},{type:"edge",value:"block-start",scope:["function"]},{type:"new-line",value:"1",scope:["function"]},{type:"if",value:"if",scope:["function"]},{type:"edge",value:"expression-start",scope:["function"]},{type:"identifier",value:"__fn__",scope:["function"]},{type:"edge",value:"expression-end",scope:["function"]},{type:"edge",value:"block-start",scope:["function","if"]},{type:"new-line",value:"2",scope:["function","if"]},{type:"statement",value:"return",scope:["function","if"]},{type:"identifier",value:"__fn__",scope:["function","if"]},{type:"new-line",value:"1",scope:["function","if"]},{type:"edge",value:"block-end",scope:["function","if"]},{type:"new-line",value:"1",scope:["function"]},{type:"statement",value:"throw",scope:["function"]},{type:"identifier",value:"Exception",scope:["function"]},{type:"edge",value:"call-start",scope:["function","call"]},{type:"string",value:'"invalid function: "',scope:["function","call"]},{type:"edge",value:"interpolation-start",scope:["function","call"]},{type:"identifier",value:"__token__",scope:["function","call"]},{type:"edge",value:"interpolation-end",scope:["function","call"]},{type:"string",value:'""',scope:["function","call"]},{type:"edge",value:"call-end",scope:["function","call"]},{type:"new-line",value:"0",scope:["function"]},{type:"edge",value:"block-end",scope:["function"]},{type:"new-line",value:"0",scope:[]}].map((e=>new xe(e.type,e.value,e.scope))),ot=(e,t,n)=>{const{content:s}=e;if(e.flag[t]){const t=n.map((e=>new xe(e.type,e.value,e.scope)));if(!t.length)return;t[1].value=t[1].value.replace(/_salt_/g,`_${e.option.salt}_`),s.reload([...t,...s.list])}},at=["Class","Function","Native"],ct=e=>{const t=(e=>{const{content:t}=e,n=new Set;return t.list.forEach(((e,s)=>{if("class"!==e.type)return;const r=t.at(s+1);if(!r)throw new Error("Unexpected error: picker/class/count/1");"identifier"===r.type&&n.add(r.value)})),n})(e);(e=>{e.forEach((e=>{if(at.includes(e))throw new Error(`ahk/forbidden: class name '${e}' is not allowed`)}))})(t)},lt=(e,n=1)=>{const{content:s}=e;s.reload();const r=t.findLastIndex(s.list,{type:"function",value:"anonymous"});if(!~r)return;const i=s.at(r);if(!i)throw new Error("Unexpected error: picker/function/anonymous/1");i.value=`${e.option.salt}_${n}`,ut(e,n,r,[...i.scope.list,"function"]).forEach((e=>{"void"!==e.type&&s.push(e)})),lt(e,n+1)},ut=(e,n,s,r,i=[])=>{const{content:o}=e,a=o.at(s);if(!a)return i;const c=a.clone();for(let e=0;e<r.length-1;e++)c.scope.shift();if(i.push(c),!a.is("edge","block-end")||!a.scope.isEquals(r))return a.type="void",ut(e,n,s+1,r,i);a.type="native",a.value=`Func("${e.option.salt}_${n}")`,i.push(new xe("new-line","0",r));const l=parseInt(i[t.findIndex(i,{type:"new-line"})].value,10)-1;return l>0&&i.forEach((e=>{if("new-line"!==e.type)return;let t=parseInt(e.value,10)-l;t>=0||(t=0),e.value=t.toString()})),i},pt=e=>{const{content:t}=e,n=[];t.list.forEach((e=>{if("native"!==e.type||!e.value.startsWith("Func(")||!e.value.endsWith(")"))return void n.push(e);const t=e.scope.list;t.pop(),n.push(new xe("identifier","Func",t)),n.push(new xe("edge","call-start",[...t,"call"])),n.push(new xe("string",e.value.slice(5,e.value.length-1),[...t,"call"])),n.push(new xe("edge","call-end",[...t,"call"]))})),t.reload(n)},ft=(e,t,n)=>{const{content:s}=e,r=s.at(t);return r?r.is("edge","parameter-start")&&n.scope.isEquals([...r.scope.slice(0,r.scope.length-1),"function"])?t:ft(e,t-1,n):0},dt=e=>{ht(e),(e=>{const{content:t}=e,n=[];t.list.forEach(((s,r)=>{if(n.push(s),!s.is("edge","block-end"))return;if("function"!==s.scope.at(-1))return;if("class"!==s.scope.at(-2))return;const i=ft(e,r,s);if(t.at(i-1)?.is("property","constructor"))return;const o=[s.scope.list];o[1]=[...o[0],"call"],n.push(new xe(".",".",o[0])),n.push(new xe("identifier","Bind",o[0])),n.push(new xe("edge","call-start",o[1])),n.push(new xe("this","this",o[1])),n.push(new xe("edge","call-end",o[1]))})),t.reload(n)})(e),gt(e),(e=>{const{content:t}=e,n=[];t.list.forEach(((e,s)=>{if(n.push(e),!e.is("super"))return;const r=t.at(s+1);if(!r?.is("edge","call-start"))return;const i=r.scope.list;n.push(new xe(".",".",i),new xe("property","__New",i))})),t.reload(n)})(e)},ht=e=>{const{content:t}=e,n=[];t.list.forEach(((e,s)=>{if(n.push(e),!e.is("edge","parameter-start"))return;if(Se(n,-3)?.is("property","constructor"))return void(n[n.length-2].type="void");if("class"!==e.scope.at(-1)&&("parameter"!==e.scope.at(-1)||"class"!==e.scope.at(-2)))return;const r=e.scope.list;n.push(new xe("this","this",r));const i=t.at(s+1);i?.is("edge","parameter-end")||n.push(new xe("sign",",",r))})),t.reload(n)},gt=e=>{const{content:t}=e;t.list.forEach((e=>{e.is("property","constructor")&&(e.value="__New")}))},vt=[],yt=[],wt=[];let mt=0;const bt=(e,t,n)=>{const{content:s}=e,r=s.at(n);return r?r.is("edge","block-end")&&r.scope.isEquals(t.scope)?n:bt(e,t,n+1):0},_t=e=>{const{content:n}=e;mt=0,yt.length=0,vt.length=0,wt.length=0,n.list.forEach(((t,n)=>mt?(mt--,void yt.push(new xe("void","",[]))):wt.length&&t.is("edge","block-start")?(yt.push(t),((e,t,n)=>{const s=[t.scope.slice(0,t.scope.length-1)];s[1]=[...s[0],"call"];let r=[];for(const e of wt){for(const t of e)t.scope.reload(t.scope.list.join(",").replace(/^.*?parameter/u,s[1].join(",")).split(",")),r.push(t);r.push(new xe("sign",",",s[1]))}r.pop(),r=[new xe(".",".",s[0]),new xe("identifier","Bind",s[0]),new xe("edge","call-start",s[1]),...r,new xe("edge","call-end",s[1])],vt.push([bt(e,t,n)+1,r])})(e,t,n),void(wt.length=0)):void(St(e,t,n)||yt.push(t))));for(const[e,n]of t.sortBy(vt,(e=>e[0])).reverse())yt.splice(e,0,...n);n.reload(yt)},St=(e,t,n)=>{const{content:s}=e;if(!t.is("sign","="))return!1;if("parameter"!==t.scope.at(-1))return!1;const r=s.at(n+1);if(!r)return!1;if(!["identifier","this"].includes(r.type))return!1;const i=s.at(n-1);return!!i&&(!!["identifier","this"].includes(i.type)&&(yt.push(new xe("void")),wt.push(kt(e,r,n+1)),mt=wt[wt.length-1].length,!0))},kt=(e,t,n,s=[])=>{const{content:r}=e,i=r.at(n);return i?i.scope.isEquals(t.scope)&&(i.is("sign",",")||i.is("edge","parameter-end"))?s:(s.push(i),kt(e,t,n+1,s)):s},xt=e=>{const{content:t}=e,n=new Set;return t.list.forEach((e=>{e.is("function")&&n.add(e.value)})),n},Et=new Map,Ct=new Set,jt=(e,t)=>{const{content:n}=e,s=n.at(t);return s?.is("edge","block-start")?t:jt(e,t+1)},It=(e,t,n)=>{const{content:s}=e,r=s.at(t);if(!r?.is("edge","block-end")||!r.scope.isEquals([...n.scope.slice(0,n.scope.length-1),"function"])){if(r?.is("identifier")&&!Et.get(r.value)){const e=s.at(t-1);if(!e)return;const n=s.at(t+1);if(!n)return;Et.set(r.value,e.is("for","for")||n.is("sign","=")||n.is("for-in")||"parameter"===r.scope.at(-1))}It(e,t+1,n)}},Ft=(e,t,n)=>{const{content:s}=e,r=s.at(t);if(!r?.is("edge","parameter-end")||!r.scope.isEquals(n.scope)){if(r?.is("identifier")){const e=s.at(t+1);if(!e)return;(e.is("sign","=")||e.is("sign",",")||e.is("sign","...")||e.is("edge","parameter-end"))&&Ct.add(r.value)}Ft(e,t+1,n)}},Wt=e=>{const{content:t}=e,n=[];t.list.forEach(((e,s)=>{e.is("sign",",")&&t.at(s+1)?.is("edge","parameter-end")||n.push(e)})),t.reload(n)},Ot=(e,t)=>{const{content:n}=e,s=n.at(t);return s?.is("edge","block-start")&&"function"===s.scope.at(-1)?[t,s.scope]:Ot(e,t+1)},At=(e,t)=>{const{content:n}=e,{i:s,list:r,scope:i}=t,o=n.at(s);if(!o)return r;r.push(o);return o.is("edge","block-end")&&o.scope.isEquals(i)?r:At(e,{i:s+1,list:r,scope:i})},Mt=(e,t)=>{const{content:n}=e;n.list.forEach(((e,s)=>{"identifier"===e.type&&"call"===e.scope.at(-1)&&t.has(e.value)&&(n.at(s+1)?.is("edge","call-start")||(e.type="native",e.value=`Func("${e.value}")`))}))},Gt=e=>{const{countBracket:t,hasIdentifier:n,i:s,list:r,result:i,scope:o}=e,a=Se(r,s);if(!a)return[s,i];i.unshift(a);const c=a.is("bracket")?"("===a.value?t-1:t+1:t,l=["identifier","super","this"].includes(a.type)||n;return 0===c&&l&&a.scope.isEquals(o)?[s,i]:Gt({countBracket:c,hasIdentifier:l,i:s-1,list:r,result:i,scope:o})},Tt=e=>{(e=>{const{content:t}=e;t.list.forEach((e=>{e.type}))})(e),(e=>{const{content:t}=e;t.list.forEach(((e,n)=>{if(!e.is("edge","parameter-start"))return;const s=t.at(n-1);s?.is("identifier")&&(s.type="function")}))})(e);let t=xt(e);dt(e),(e=>{const{content:t}=e,n=[];t.list.forEach(((s,r)=>{if(n.push(s),!s.is("edge","parameter-start"))return;if(t.at(r-1)?.is("property","__New"))return;const i=jt(e,r);Ct.clear(),Et.clear(),Ft(e,r,s),It(e,i,s),Et.forEach(((t,r)=>{t||Ct.has(r)||e.cache.global.has(r)||r.startsWith("__")&&r.endsWith("__")||r[0].toLowerCase()===r[0]&&n.push(...[["identifier",r],["sign","="],["identifier",r],["sign",","]].map((e=>new xe(e[0],e[1],s.scope))))}))})),t.reload(n),Wt(e)})(e),(e=>{const{content:t}=e,n={i:-1,scope:new ke,isObjectWithoutBrackets:!1},s=[];t.list.forEach(((r,i)=>{if(s.push(r),i===n.i)return n.isObjectWithoutBrackets&&s.push(new xe("new-line",n.scope.length.toString(),n.scope)),void s.push(new xe("statement","return",n.scope));if(!r.is("edge","parameter-start"))return;if(t.last.is("property","__New"))return;const[o,a]=Ot(e,i),c=At(e,{i:o,list:[],scope:a}),l=c[1].is("bracket","{");c.filter((e=>e.is("new-line")&&e.scope.isEquals(a))).length>(l?1:2)||(e=>!!(e.is("for")||e.is("if")||e.is("native")&&"__mark:do__"!==e.value||e.is("statement")&&"new"!==e.value||e.is("try")||e.is("while")))(c[2])||(n.i=o+(l?0:1),n.scope=a,n.isObjectWithoutBrackets=l)})),t.reload(s)})(e),_t(e),e.option.pickAnonymous&&t.has("anonymous")&&((e=>{lt(e),pt(e)})(e),t=xt(e)),((e,t)=>{Mt(e,t)})(e,t),(e=>{const{content:t}=e;let n=!1;const s=[];t.list.forEach((e=>{if(n&&(e.is("new-line")||e.is("bracket","}")||e.is("bracket",")"))){n=!1;const t=[...e.scope.list,"call"];s.push(new xe("bracket",")",e.scope),new xe("edge","call-start",t),new xe("edge","call-end",t),e)}else e.is("native","__mark:do__")?(n=!0,s.push(new xe("bracket","(",e.scope))):s.push(e)})),t.reload(s)})(e),(e=>{const{content:t}=e,n=`__rf_${e.option.salt}__`,s=[],r=[];t.list.forEach(((e,n)=>{if(!e.is("edge","call-start"))return;const i=t.at(n-1);if(!i)return;if(i.is("function"))return;if(i.is("super"))return;const[o,a]=Gt({countBracket:0,hasIdentifier:!1,i:n-1,list:t.list,result:[],scope:i.scope}),c=a.filter((e=>e.is("identifier")||e.is("property"))),l=c[c.length-1];var u;l.value.startsWith("__")||(u=l.value).startsWith(u[0].toLowerCase())&&(s.push(o),r.push(n-1))}));const i=[];let o=0;t.list.forEach(((t,a)=>{s.includes(a)&&i.push(new xe("identifier",n,t.scope),new xe("edge","call-start",[...t.scope.list,"call"])),i.push(t),r.includes(a)&&i.push(new xe("sign",",",t.scope),new xe("string",`"#rf/${e.option.salt}/${++o}"`,t.scope),new xe("edge","call-end",[...t.scope.list,"call"]))})),t.reload(i)})(e)};const Rt=["ACos","ASin","ATan","Abs","Asc","AutoTrim","Bind","BlockInput","Break","Catch","Ceil","Chr","Click","ComObjActive","ComObjAddRef","ComObjArray","ComObjConnect","ComObjCreate","ComObjError","ComObjFlags","ComObjGet","ComObjQuery","ComObjRelease","ComObjType","ComObjValue","Continue","Control","ControlClick","ControlSend","ControlSendRaw","CoordMode","Cos","Critical","DetectHiddenText","DetectHiddenWindows","DllCall","Drive","DriveGet","DriveSpaceFree","Edit","Else","EnvAdd","EnvDiv","EnvGet","EnvMult","EnvSet","EnvSub","EnvUpdate","Error","ErrorLevel","Exception","Exit","ExitApp","Exp","File","FileAppend","FileCopy","FileCopyDir","FileCreateDir","FileCreateShortcut","FileDelete","FileEncoding","FileExist","FileGetAttrib","FileGetShortcut","FileGetSize","FileGetTime","FileGetVersion","FileInstall","FileMove","FileMoveDir","FileOpen","FileRead","FileReadLine","FileRecycle","FileRecycleEmpty","FileRemoveDir","FileSelectFile","FileSelectFolder","FileSetAttrib","FileSetTime","Finally","Floor","Format","FormatTime","Func","GetKeyName","GetKeySC","GetKeyState","GetKeyVK","Gosub","Goto","GroupActivate","Gui","GuiControl","GuiControlGet","Hotkey","Hotstring","If","IfExist","IfInString","IfMsgBox","IfNotExist","IfNotInString","IfWinActive","IfWinExist","IfWinNotActive","IfWinNotExist","ImageSearch","InStr","Include","IncludeAgain","IniDelete","IniRead","IniWrite","Input","InputBox","InputHook","InstallKeybdHook","InstallMouseHook","IsByRef","IsFunc","IsLabel","IsObject","KeyHistory","KeyWait","LTrim","ListLines","ListVars","Ln","LoadPicture","Log","Loop","Max","Menu","MenuGetHandle","MenuGetName","Min","Mod","MouseClick","MouseClickDrag","MouseGetPos","MouseMove","MsxBox","NumGet","NumPut","OnClipboardChange","OnError","OnExit","OnMessage","Ord","OutputDebug","Pause","PixelGetColor","PixelSearch","Process","Progress","RTrim","Random","RegDelete","RegExMatch","RegRead","RegWrite","RegisterCallback","Reload","Return","Round","Run","RunAs","Send","SendEvent","SendInput","SendLevel","SendMode","SendPlay","SetBatchLines","SetCapsLockState","SetControlDelay","SetDefaultMouseSpeed","SetFormat","SetKeyDelay","SetMouseDelay","SetNumLockState","SetRegView","SetScrollLockState","SetStoreCapsLockMode","SetTimer","SetTitleMatchMode","SetWinDelay","SetWorkingDir","ShutDown","Sin","Sleep","Sort","SoundBeep","SoundGet","SoundGetWaveVolume","SoundPlay","SoundSet","SoundSetWaveVolume","SplashImage","SplitPath","Sqrt","StrGet","StrLen","StrPut","StrReplace","StrSplit","StringCaseSense","StringGetPos","StringLeft","StringLen","StringLower","StringMid","StringReplace","StringRight","StringSplit","StringTrimLeft","StringTrimRight","StringUpper","SubStr","Suspend","Switch","SysGet","Tan","Thread","Throw","ToolTip","Transform","TrayTip","Trim","Try","URLDownloadToFile","Until","VarSetCapacity","Warn","While","WinActivate","WinActivateBottom","WinActive","WinClose","WinExist","WinGetTitle","WinSet","WinWait","WinWaitActive","WinWaitClose"].map((e=>e.toLowerCase())),Lt={array:e=>{(e=>{const{content:t}=e,n=`__ci_${e.option.salt}__`;let s=0;const r=(e,n,i=[])=>{const o=t.at(n);return o?(i.push(o),o.is("edge","index-start")&&o.scope.isEquals(e.scope)?(s++,r(e,n+1,i)):o.is("edge","index-end")&&o.scope.isEquals(e.scope)?(s--,0===s?[n,i]:r(e,n+1,i)):r(e,n+1,i)):(s=0,[n,i])},i=(e,n)=>{const s=t.list;s.splice(e[0],e[1]-e[0]+1,...n),t.reload(s)};let o=-1,a=t.length;for(;o<a;){o++,a=t.length;const s=t.at(o);if(!s?.is("edge","index-start"))continue;const c=t.at(o+1);if(!c)continue;if(c.is("identifier",n))continue;if(c.is("edge","index-end"))continue;const[l,u]=r(s,o),p=u.slice(1,u.length-1);let f="number";for(const e of p){if([".","identifier","property","this"].includes(e.type)){f="identifier";break}if("string"===e.type){f="string";break}}if("identifier"!==f)if("number"!==f);else{const e=p[0],t=1===p.length?[new xe(e.type,(parseFloat(e.value)+1).toString(),e.scope)]:[p[p.length-1],new xe("math","+",e.scope),new xe("number","1",e.scope)];i([o+p.length,o+p.length],t)}else{e.flag.isChangeIndexUsed=!0;const t=[...p],s=t[0].scope,r=new ke([...s.list,"call"]);i([o+1,l-1],[new xe("identifier",n,s),new xe("edge","call-start",r),...t,new xe("edge","call-end",r)])}}})(e),(e=>{const{content:t}=e;let n=[];const s="__array__";let r=[];const i=e=>{const n=t.at(e);return n?"new-line"===n.type?parseInt(n.value,10):i(e-1):0},o=(e,n=[[]])=>{const s=t.at(e);if(!s)return n;const i=Se(n,-1);return i?s.is("edge","array-start")?n:(s.is("sign",",")?n.push([]):i.unshift(s),r.pop(),o(e-1,n)):n};t.list.forEach(((e,a)=>{if(n.length&&"new-line"===e.type){const t=i(a-1);return n.forEach(((i,o)=>r=[...r,...[["new-line",t.toString()],...n[n.length-o-1].map((e=>[e.type,e.value])),["sign","="],["identifier",s],["edge","index-start"],["number",(o+1).toString()],["edge","index-end"]].map((t=>new xe(t[0],t[1],e.scope)))])),n.length=0,void r.push(e)}e.is("sign","=")&&t.at(a-1)?.is("edge","array-end")?(n=o(a-2),r=r.slice(0,r.length-2),r=[...r,new xe("identifier",s,e.scope),new xe("sign","=",e.scope)]):r.push(e)})),t.reload(r)})(e)},for:e=>{const{content:t}=e,n=e=>{const s=t.at(e);return s?s.is("edge","block-start")&&"for"===s.scope.at(-1)?e:n(e+1):0},s=e=>{const n=t.at(e);if(!n)return"";if(n.is("for","for")){const n=t.at(e+1);if(!n)throw new Error("Unexpected error: picker/for/2");return n.value}return s(e-1)},r=[];if(t.list.forEach(((e,i)=>{if(!e.is("for-in","in"))return;const o=s(i);if(o.startsWith("__")&&o.endsWith("__"))return;const a=n(i),c=t.at(a+1);if(!c)throw new Error("Unexpected error: picker/for/1");const l=c.value,{scope:u}=c;r.unshift([a+1,[new xe("new-line",l,u),new xe("identifier",o,u),new xe("sign","=",u),new xe("identifier",o,u),new xe("math","-",u),new xe("number","1",u)]])})),r.length){const e=t.list;for(const t of r)e.splice(t[0],0,...t[1]);t.reload(e)}},newLine:e=>{const{content:t}=e,n=[];t.list.forEach(((e,s)=>{(()=>{if(!e.is("new-line"))return!1;if(!(s>0))return!1;const n=t.at(s-1);return!!n&&(!!n.is("bracket","(")||!!n.is("sign","="))})()||n.push(e)})),t.reload(n)},object:e=>{(e=>{const{content:t}=e,n=[],s="__object__";let r=[];const i=e=>{const n=t.at(e);return n?"new-line"===n.type?parseInt(n.value,10):i(e-1):0},o=e=>{const s=t.at(e);s&&(s.is("bracket","{")||(s.is("identifier")&&n.push(s.value),r.pop(),o(e-1)))};t.list.forEach(((e,a)=>{if(n.length&&"new-line"===e.type){const t=i(a-1),o=e.scope;for(let e=0;e<n.length;e++)r=[...r,new xe("new-line",t.toString(),o),new xe("identifier",n[n.length-e-1],o),new xe("sign","=",o),new xe("identifier",s,o),new xe("edge","index-start",o),new xe("string",`"${n[n.length-e-1]}"`,o),new xe("edge","index-end",o)];return n.length=0,void r.push(e)}e.is("sign","=")&&t.at(a-1)?.is("bracket","}")?(o(a),r=[...r,new xe("identifier",s,e.scope),new xe("sign","=",e.scope)]):r.push(e)})),t.reload(r)})(e),(e=>{const{content:t}=e,n=[];t.list.forEach(((e,s)=>{if(n.push(e),!e.is("identifier"))return;if("object"!==e.scope.at(-1))return;const r=t.at(s-1);if(!r)return;if(!r.is("bracket","{")&&!r.is("sign",","))return;const i=t.at(s+1);i&&(i.is("bracket","}")||i.is("sign",","))&&n.push(new xe("sign",":",e.scope.list),new xe("identifier",e.value,e.scope.list))})),t.reload(n)})(e)},variable:e=>{(e=>{const{content:t}=e;t.list.forEach(((e,n)=>{if(!e.is("identifier"))return;const s=t.at(n+1);if(!s?.is("sign","="))return;const r=e.value.toLowerCase();if(r.startsWith("a_")||Rt.includes(r))throw new Error(`ahk/forbidden: variable name '${e.value}' is not allowed`)}))})(e),(e=>{const{content:t}=e,n=new Set;let s=0;const r=[];t.list.forEach(((e,i)=>{if(s)return void s--;if(r.push(e),!e.is("sign","="))return;const o=t.at(i-1);if(o?.is("identifier")&&!o.scope.length&&(!(i-2>=0)||t.at(i-2)?.is("new-line"))&&!n.has(o.value)){if(n.add(o.value),t.at(i+1)?.is("identifier",o.value)&&t.at(i+2)?.is("new-line"))return r.splice(r.length-2,2),void(s=2);r.splice(r.length-2,0,new xe("native","global ",e.scope))}})),t.reload(r),e.cache.global=n})(e),(e=>{const{content:t}=e,n=[];t.list.forEach(((e,s)=>{if(!e.is("statement","new"))return void n.push(e);const r=t.at(s+1);r?.is("identifier","Error")?r.value="Exception":n.push(e)})),t.reload(n)})(e)}},$t=e=>{for(const t of Object.keys(Lt))Lt[t](e);(e=>{e.option.useBuiltIns&&(ot(e,"isChangeIndexUsed",rt),ot(e,"isFunctionIncluded",it))})(e),ct(e),Tt(e)},Dt={"array-end":"]","array-start":"[","block-end":"}","block-start":"{","call-end":")","call-start":"(","expression-end":")","expression-start":"(","index-end":"]","index-start":"[","interpolation-end":") . ","interpolation-start":" . (","parameter-end":")","parameter-start":"("};let Bt=[];const Nt=e=>{const{i:t,it:n}=e,s=e.content.at(t+1);return s?.is("new-line")?n.value:`${n.value} `},qt=e=>{let t=parseInt(e.it.value,10);return t>=0||(t=0),`\n${Ze(" ",2*t)}`},Pt=(e,t)=>{if(t.option.ignoreComment)return e;const{i:n,it:s}=t;if(!Bt.length)return e;if("new-line"!==s.type)return e;const r=t.content.at(n-1),i=r&&"new-line"!==r.type&&r.value?" ; ":"; ",o=qt(t),a=`${i}${Bt.join(" ")}${o}`;return Bt=[],a},Ut=e=>{let t=e.content.list.map(((t,n)=>{const s={...e,i:n,it:t};t.comment&&(Bt=[...Bt,...t.comment]);for(const e of Object.keys(Ht))if(t.type===e){const n=Ht[e],r="string"==typeof n?n.replace(/~/g,t.value):n(s);return Pt(r,s)}return Pt(t.value,s)})).join("");return e.option.insertTranspilerInformation&&(t=["; Generated by Coffee-AHK/0.0.54",t].join("\n")),t},Ht={"for-in":" in ","logical-operator":e=>{const{value:t}=e.it;return["&&","||"].includes(t)?` ${t} `:t},"new-line":qt,await:"await ",class:"class ",compare:" ~ ",edge:e=>{const{content:t,i:n,it:s}=e,{value:r}=s;if("block-start"===r){const e=Dt[r],s=t.at(n-1);return s?s.is("sign",":")?e:` ${e}`:e}if("call-start"===r){const e=t.at(n-1);if(!e)throw new Error("Unexpected error: renderer/index/1");const s=be(e.value,"_");return s.startsWith(s[0].toLowerCase())?".Call(":"("}return Dt[r]||r},for:"for ",if:e=>{const{content:t,i:n,it:s}=e,{value:r}=s;if("case"===r)return"case ";if("default"===r)return"default";if("else"===r)return" else";if("if"===r){const e=t.at(n-1);return e?.is("if","else")?" if ":"if "}return"switch"===r?"switch ":""},math:" ~ ",negative:e=>{const{value:t}=e.it;return"-"===t?t:""},sign:e=>{const{value:t}=e.it;return[",",":"].includes(t)?Nt(e):"="===t?" := ":"..."===t?"*":t},statement:e=>{const{value:t}=e.it;return"export"===t?"return ":"extends"===t?" extends ":["new","return","throw"].includes(t)?Nt(e):e.it.value},super:"base",try:e=>{const{content:t,i:n,it:s}=e,{value:r}=s;if("catch"===r){const e=t.at(n+1);return e?.is("edge","block-start")?" catch":" catch "}return"finally"===r?" finally":"try"===r?"try":""},void:"",while:"while "},Kt=(t,n)=>{const s=e.compile(t,{ast:!0}),r=new ke,i=new st(r),o={cache:{global:new Set},content:i,flag:{isChangeIndexUsed:!1,isFunctionIncluded:!1},indent:0,option:n,token:void 0,scope:r,type:"",value:""};for(const e of s.tokens)o.token=e,o.token[2]={},o.type=e[0].toLowerCase(),o.value=e[1].toString(),nt(o);return $t(o),{ast:i.list,content:Ut(o),raw:s.tokens}};var Vt=function(e){return function(t){return null==t?void 0:t[e]}}("length"),zt="\\ud800-\\udfff",Qt="["+zt+"]",Jt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Xt="\\ud83c[\\udffb-\\udfff]",Yt="[^"+zt+"]",Zt="(?:\\ud83c[\\udde6-\\uddff]){2}",en="[\\ud800-\\udbff][\\udc00-\\udfff]",tn="(?:"+Jt+"|"+Xt+")"+"?",nn="[\\ufe0e\\ufe0f]?",sn=nn+tn+("(?:\\u200d(?:"+[Yt,Zt,en].join("|")+")"+nn+tn+")*"),rn="(?:"+[Yt+Jt+"?",Jt,Zt,en,Qt].join("|")+")",on=RegExp(Xt+"(?="+Xt+")|"+rn+sn,"g");var an=Vt,cn=V,ln=function(e){for(var t=on.lastIndex=0;on.test(e);)++t;return t};var un=function(e){return cn(e)?ln(e):an(e)},pn=je,fn=F,dn=R,hn=V,gn=un,vn=le,yn=Math.ceil;var wn=function(e,t){var n=(t=void 0===t?" ":fn(t)).length;if(n<2)return n?pn(t,e):t;var s=pn(t,yn(e/gn(t)));return hn(t)?dn(vn(s),0,e).join(""):s.slice(0,e)},mn=un,bn=ze,_n=pe,Sn=Math.ceil,kn=Math.floor;var xn=r((function(e,t,n){e=_n(e);var s=(t=bn(t))?mn(e):0;if(!t||s>=t)return e;var r=(t-s)/2;return wn(kn(r),n)+e+wn(Sn(r),n)}));const En=e=>{const t="string"!=typeof e?e.toString():e;console.log(),console.log(n.blue(xn(t,80,"-")))},Cn=e=>{let t=0;En(++t);for(let n=0;n<e.length;n++){const s=e[n];console.log(n,s),"new-line"===s.type&&En(++t)}En("eof")},jn={asText:!1,ast:!1,displayCoffeescriptAst:!1,ignoreComment:!0,insertTranspilerInformation:!0,pickAnonymous:!0,salt:"",save:!0,useBuiltIns:!0,verbose:!1},In=async(e,t)=>{const n=(await Promise.resolve().then((function(){return require("./glob-Dm0JusiS.js")})).then((function(e){return e.glob}))).default,s=[e,`${e}.coffee`,`${e}/index.coffee`],[r]=(await n(s)).filter((e=>e.endsWith(".coffee")));if(!r)throw new Error(`invalid source '${e}'`);const{read:i,write:o}=await Promise.resolve().then((function(){return require("./index-C3RLq97x.js")})),a=await i(r,t.salt),c=Kt(a,t);return t.verbose&&(t.displayCoffeescriptAst&&console.log(c.raw),Cn(c.ast)),t.save&&await o(r,c,t),c.content},Fn=(e,t)=>{const n=Kt(e,t);return t.verbose&&(t.displayCoffeescriptAst&&console.log(n.raw),Cn(n.ast)),n.content};exports.commonjsGlobal=s,exports.main=(e,t={})=>{const n={...jn,...t};return n.salt||(n.salt=Math.random().toString(32).split(".")[1].padStart(11,"0")),n.asText?Fn(e,n):In(e,n)},exports.trim=be;