oxc-codegen 0.0.0 → 0.144.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/LICENSE +22 -0
- package/README.md +75 -0
- package/dist/index.d.ts +1367 -0
- package/dist/index.js +1 -0
- package/dist/print_js.js +54 -0
- package/dist/print_js_maps.js +56 -0
- package/dist/print_ts.js +80 -0
- package/dist/print_ts_maps.js +82 -0
- package/package.json +53 -4
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createRequire as e}from"node:module";let t=` `;const n=[``],r=/^[ \t]+$/;var i=class{constructor(e){this.output=``;let i=e.startingIndentLevel;typeof i!=`number`&&(i=0),this.indentLevel=i;let{indent:a}=e;(typeof a!=`string`||!r.test(a))&&(a=` `),a!==t&&(t=a,n.length=1),this.indents=n,this.indentString=a,this.isJsx=e.jsx===!0,this.pendingIndentAsSpace=!1,this.last=3,e.sourceMap==null?(this.mapOffsets=null,this.mapPositions=null,this.mapNames=null):(this.mapOffsets=[],this.mapPositions=[],this.mapNames=[])}};const a=e(import.meta.url),o={},s=[`./print_js.js`,`./print_ts.js`,`./print_js_maps.js`,`./print_ts_maps.js`],c=[null,null,null,null];function l(e,t){let n=0;t==null?t=o:(t.ts===!0&&(n=1),t.sourceMap!=null&&(n|=2));let r=c[n];return r===null&&(r=a(s[n]).printSync,c[n]=r),r(e,new i(t),t)}export{l as printSync};
|
package/dist/print_js.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const e=(e,t,n)=>{e.last=n,e.output+=t},t=(e,t)=>{e.output+=t},n={__proto__:null,"**":17,"*":16,"/":16,"%":16,"+":15,"-":15,"<<":14,">>":14,">>>":14,"<":13,">":13,"<=":13,">=":13,instanceof:13,in:13,"==":12,"!=":12,"===":12,"!==":12,"&":11,"^":10,"|":9,"&&":8,"||":7,"??":6},r={__proto__:null,"**":` ** `,"*":` * `,"/":` / `,"%":` % `,"+":` + `,"-":` - `,"<<":` << `,">>":` >> `,">>>":` >>> `,"<":` < `,">":` > `,"<=":` <= `,">=":` >= `,instanceof:` instanceof `,in:` in `,"==":` == `,"!=":` != `,"===":` === `,"!==":` !== `,"&":` & `,"^":` ^ `,"|":` | `,"&&":` && `,"||":` || `,"??":` ?? `},i={__proto__:null,"=":` = `,"+=":` += `,"-=":` -= `,"*=":` *= `,"/=":` /= `,"%=":` %= `,"**=":` **= `,"<<=":` <<= `,">>=":` >>= `,">>>=":` >>>= `,"&=":` &= `,"^=":` ^= `,"|=":` |= `,"&&=":` &&= `,"||=":` ||= `,"??=":` ??= `},a=e=>{switch(e){case`+`:return 11;case`-`:return 13;case`!`:return 9;default:return 3}},o=e=>e===`++`?12:14,s=e=>{for(;e.type===`ParenthesizedExpression`;)e=e.expression;return e},c=(e,t,n,r)=>{let i={e,precedence:n,ctx:r,leftPrecedence:0,operator:e.operator,wrap:!1,rightPrecedence:0,parent:null};for(;;){l(i,t);let e=s(i.e.left);if(e.type===`BinaryExpression`||e.type===`LogicalExpression`){if(e.type===`BinaryExpression`&&e.left.type===`PrivateIdentifier`){L(e,t,0),d(i,t);break}i={e,precedence:i.leftPrecedence,ctx:i.ctx,leftPrecedence:0,operator:i.operator,wrap:!1,rightPrecedence:0,parent:i}}else{N(i.e.left,t,i.leftPrecedence,i.ctx),d(i,t);break}}for(;(i=i.parent)!==null;)d(i,t)},l=(t,r)=>{let{e:i}=t,a=i.operator,o=n[a],c=t.precedence>=o&&(!u(t.operator)||t.precedence!==n[t.operator]);t.operator=a,t.wrap=c||a===`in`&&!!(t.ctx&1),t.wrap&&(e(r,`(`,3),t.ctx&=-2);let l=o-1;if(t.leftPrecedence=l,t.rightPrecedence=l,o===17?t.leftPrecedence=o:t.rightPrecedence=o,a===`??`){let e=s(i.left);e.type===`LogicalExpression`&&e.operator!==`??`&&(t.leftPrecedence=18);let n=s(i.right);n.type===`LogicalExpression`&&n.operator!==`??`&&(t.rightPrecedence=18)}else if(a===`**`){let e=s(i.left);(e.type===`UnaryExpression`||e.type===`AwaitExpression`||e.type===`Literal`&&(typeof e.value==`number`||e.bigint!=null))&&(t.leftPrecedence=21)}},u=e=>e===`&&`||e===`||`||e===`??`,d=(t,n)=>{e(n,r[t.operator],3),N(t.e.right,n,t.rightPrecedence,t.ctx),t.wrap&&e(n,`)`,3)},f=t=>{t.last<=2&&e(t,` `,3)},p=(e,t)=>{let n=e.last;n>=10&&ee(e,n,t)},ee=(t,n,r)=>{(n===11&&(r===11||r===12)||n===13&&(r===13||r===14)||n===10&&r===14)&&e(t,` `,3)},m=t=>{if(t.pendingIndentAsSpace){e(t,` `,3),t.pendingIndentAsSpace=!1;return}let n=t.indentLevel;if(n>0){let{indents:r}=t;e(t,n<r.length?r[n]:h(t,n),3)}},h=(e,t)=>{let{indents:n,indentString:r}=e,{length:i}=n,a=n[i-1];for(;i<=t;i++)a+=r,a.charCodeAt(0),n.push(a);return a},g=(t,n,r)=>{Number.isInteger(n)?n<1e3?e(t,String(n),1):te(t,n,r):ne(t,n,r)},te=(n,r,i)=>{let a=String(r);if(r>=1e21){if(v(n,r,a.length-1,i))return;_(n,a,a.indexOf(`e`),i);return}let{length:o}=a;if(!v(n,r,o,i)){if(a.charCodeAt(o-1)===48){let r=1;for(;a.charCodeAt(o-1-r)===48;)r++;let i=String(r);if(i.length+1<r){t(n,a.slice(0,o-r)),t(n,`e`),e(n,i,0);return}}e(n,a,1)}},ne=(n,r,i)=>{let a=String(r);if(a.charCodeAt(0)===48){if(a.charCodeAt(2)===48){let r=3;for(;a.charCodeAt(r)===48;)r++;let i=String(a.length-2);if(i.length+2<r-1){t(n,a.slice(r)),t(n,`e-`),e(n,i,0);return}}e(n,a.slice(1),0);return}let o=a.indexOf(`e`);if(o===-1){e(n,a,0);return}_(n,a,o,i)},_=(n,r,i,a)=>{let o=r.charCodeAt(i+1)===43?r.slice(i+2):r.slice(i+1);if(i>1){let a=String(Number(o)-(i-2));if(a.length<=o.length){t(n,r[0]),t(n,r.slice(2,i)),t(n,`e`),e(n,a,0);return}}t(n,r.slice(0,i+1)),e(n,o,0)},v=(n,r,i,a)=>{if(i<13)return!1;let o=BigInt(r).toString(16);return o.length+2>=i?!1:(t(n,`0x`),e(n,o,0),!0)},y=/[\0\x07\b\v\f\n\r\x1B\\"<\u2028\u2029\xA0\uD800-\uDFFF]/,b=(n,r,i)=>{t(n,`"`),y.test(r)?re(n,r):t(n,r),e(n,`"`,3)},re=(e,n)=>{let r=0,{length:i}=n;for(let a=0;a<i;a++){let o=null,s=n.charCodeAt(a);switch(s){case 0:if(a+1<i){let e=n.charCodeAt(a+1);if(e>=48&&e<=57){o=`\\x00`;break}}o=`\\0`;break;case 7:o=`\\x07`;break;case 8:o=`\\b`;break;case 11:o=`\\v`;break;case 12:o=`\\f`;break;case 10:o=`\\n`;break;case 13:o=`\\r`;break;case 27:o=`\\x1B`;break;case 92:o=`\\\\`;break;case 34:o=`\\"`;break;case 60:if(/^<\/script/i.test(n.slice(a,a+8))){o=`<\\`;break}continue;case 8232:o=`\\u2028`;break;case 8233:o=`\\u2029`;break;case 160:o=`\\xA0`;break;default:if(s>=55296&&s<=57343){if(s<=56319&&a+1<i){let e=n.charCodeAt(a+1);if(e>=56320&&e<=57343){a++;continue}}o=`\\u`+s.toString(16);break}continue}t(e,n.slice(r,a)),t(e,o),r=a+1}t(e,n.slice(r))},ie=e=>e.includes(`</`)?e.replace(/<\/(script)/gi,`<\\/$1`):e,x=(t,n,r,i)=>{let{value:a}=t;switch(typeof a){case`string`:b(n,a,t);break;case`number`:ae(t,n,r,i);break;case`boolean`:f(n),e(n,a?`true`:`false`,0);break;default:t.regex==null?t.bigint==null?(f(n),e(n,`null`,0)):se(t,n,r):oe(t,n)}},ae=(n,r,i,a)=>{let{value:o}=n;if(a&4&&n.raw!=null){let{raw:t}=n;e(r,t,t[t.length-1]===`.`?3:0);return}if(o>0&&o<1/0)f(r),g(r,o,n);else if(Number.isNaN(o))f(r),e(r,`NaN`,0);else if(Number.isFinite(o))Object.is(o,0)?(f(r),e(r,`0`,1)):i>=18?(t(r,`(-`),g(r,-o,n),e(r,`)`,3)):(p(r,13),t(r,`-`),g(r,-o,n));else{let n=o<0,a=n&&i>=18;a&&e(r,`(`,3),n?(p(r,13),t(r,`-`)):f(r),e(r,`Infinity`,0),a&&e(r,`)`,3)}},oe=(n,r)=>{t(r,`/`),t(r,n.regex.pattern);let{flags:i}=n.regex;i===``?e(r,`/`,2):(t(r,`/`),e(r,i,0))},se=(n,r,i)=>{f(r);let a=n.bigint;a.startsWith(`-`)&&i>=18?(t(r,`(`),t(r,a),e(r,`n)`,3)):(t(r,a),e(r,`n`,0))},S=(t,n)=>{let r=!1;t.type===`FunctionExpression`&&(r=(n.last|1)==7),r&&e(n,`(`,3),f(n),e(n,t.async?`async function`:`function`,0),t.generator&&e(n,`* `,3),t.id!=null&&(f(n),e(n,t.id.name,0)),C(t.params,n),t.body==null?e(n,`;`,3):(e(n,` `,3),T(t.body,n)),r&&e(n,`)`,3)},C=(t,n)=>{if(t.length===0){e(n,`()`,3);return}e(n,`(`,3),w(t,n),e(n,`)`,3)},w=(t,n)=>{let{length:r}=t;for(let i=0;i<r;i++){i>0&&e(n,`, `,3);let r=t[i],{decorators:a}=r;a!=null&&a.length>0&&D(a,n),V(r,n)}},T=(t,n)=>{let r=t.body;if(r.length===0){e(n,`{}`,3);return}e(n,`{
|
|
2
|
+
`,3),n.indentLevel++,q(r,n),n.indentLevel--,m(n),e(n,`}`,3)},ce=(t,n)=>{if(t.length===0){e(n,`() => `,3);return}e(n,`(`,3),w(t,n),e(n,`) => `,3)},E=(t,n)=>{let r=!1;t.type===`ClassExpression`&&(r=(n.last|1)==7),r&&e(n,`(`,3);let{decorators:i}=t;i!=null&&i.length>0&&D(i,n),f(n),e(n,`class`,0),t.id!=null&&(e(n,` `,3),e(n,t.id.name,0)),t.superClass!=null&&(e(n,` extends `,3),N(t.superClass,n,19,0));let{implements:a}=t;e(n,` `,3),ue(t.body,n),r&&e(n,`)`,3)},D=(t,n)=>{let{length:r}=t;for(let i=0;i<r;i++){let r=t[i];e(n,`@`,3);let{expression:a}=r,o=le(a);o&&e(n,`(`,3),N(a,n,0,0),o&&e(n,`)`,3),e(n,` `,3)}},le=e=>{for(;;)switch(e.type){case`Identifier`:return!1;case`MemberExpression`:return e.computed;case`CallExpression`:e=e.callee;break;default:return!0}},ue=(t,n)=>{let{body:r}=t,{length:i}=r;if(i===0){e(n,`{}`,3);return}e(n,`{
|
|
3
|
+
`,3),n.indentLevel++;for(let t=0;t<i;t++){m(n);let i=r[t];switch(i.type){case`MethodDefinition`:de(i,n),e(n,`
|
|
4
|
+
`,3);break;case`PropertyDefinition`:fe(i,n),e(n,`;
|
|
5
|
+
`,3);break;case`StaticBlock`:pe(i,n),e(n,`
|
|
6
|
+
`,3);break;case`AccessorProperty`:me(i,n),e(n,`;
|
|
7
|
+
`,3);break;default:throw Error(`Unknown class element type: ${i.type}`)}}n.indentLevel--,m(n),e(n,`}`,3)},de=(t,n)=>{let{decorators:r}=t;r!=null&&r.length>0&&D(r,n),t.static&&(f(n),e(n,`static `,3));let{kind:i}=t;i===`get`?(f(n),e(n,`get `,3)):i===`set`&&(f(n),e(n,`set `,3));let a=t.value;a.async&&(f(n),e(n,`async `,3)),a.generator&&e(n,`*`,3),t.computed?(e(n,`[`,3),N(t.key,n,1,0),e(n,`]`,3)):H(t.key,n),C(a.params,n),a.body==null?e(n,`;`,3):(e(n,` `,3),T(a.body,n))},fe=(t,n)=>{let{decorators:r}=t;r!=null&&r.length>0&&D(r,n),t.static&&(f(n),e(n,`static `,3)),t.computed?(e(n,`[`,3),N(t.key,n,1,0),e(n,`]`,3)):H(t.key,n),t.value!=null&&(e(n,` = `,3),N(t.value,n,1,0))},pe=(t,n)=>{f(n),e(n,`static `,3);let{body:r}=t,{length:i}=r;if(i===0){e(n,`{}`,3);return}e(n,`{
|
|
8
|
+
`,3),n.indentLevel++;for(let e=0;e<i;e++)J(r[e],n);n.indentLevel--,m(n),e(n,`}`,3)},me=(t,n)=>{let{decorators:r}=t;r!=null&&r.length>0&&D(r,n),t.static&&(f(n),e(n,`static `,3)),f(n),e(n,`accessor`,0),t.computed?(e(n,` [`,3),N(t.key,n,1,0),e(n,`]`,3)):(e(n,` `,3),H(t.key,n)),t.value!=null&&(e(n,` = `,3),N(t.value,n,1,0))},O=(n,r)=>{let{openingElement:i}=n;t(r,`<`),k(i.name,r);let{attributes:a}=i,{length:o}=a;for(let n=0;n<o;n++){t(r,` `);let i=a[n];i.type===`JSXSpreadAttribute`?(e(r,`{...`,3),N(i.argument,r,1,0),t(r,`}`)):he(i,r)}let{closingElement:s}=n;if(s==null){e(r,` />`,3);return}t(r,`>`);let{children:c}=n,l=c.length;for(let e=0;e<l;e++)M(c[e],r);t(r,`</`),k(s.name,r),e(r,`>`,3)},k=(e,n)=>{switch(e.type){case`JSXIdentifier`:t(n,e.name);break;case`JSXMemberExpression`:k(e.object,n),t(n,`.`),k(e.property,n);break;case`JSXNamespacedName`:t(n,e.namespace.name),t(n,`:`),t(n,e.name.name);break;case`ThisExpression`:t(n,`this`);break;default:throw Error(`Unknown JSX name type: ${e.type}`)}},he=(e,n)=>{let{name:r}=e;r.type===`JSXNamespacedName`?(t(n,r.namespace.name),t(n,`:`),t(n,r.name.name)):t(n,r.name);let{value:i}=e;i!=null&&(t(n,`=`),ge(i,n))},ge=(e,n)=>{switch(e.type){case`Literal`:{let{raw:r}=e,i=r==null?String(e.value):r.slice(1,-1),a=i.includes(`"`)?`'`:`"`;t(n,a),t(n,i),t(n,a);break}case`JSXExpressionContainer`:A(e,n);break;case`JSXElement`:O(e,n);break;case`JSXFragment`:j(e,n);break;default:throw Error(`Unknown JSX attribute value type: ${e.type}`)}},A=(n,r)=>{e(r,`{`,3),n.expression.type!==`JSXEmptyExpression`&&N(n.expression,r,0,0),t(r,`}`)},j=(n,r)=>{t(r,`<>`);let{children:i}=n,{length:a}=i;for(let e=0;e<a;e++)M(i[e],r);e(r,`</>`,3)},M=(n,r)=>{switch(n.type){case`JSXText`:t(r,n.raw==null?n.value:n.raw);break;case`JSXExpressionContainer`:A(n,r);break;case`JSXElement`:O(n,r);break;case`JSXFragment`:j(n,r);break;case`JSXSpreadChild`:e(r,`{...`,3),N(n.expression,r,0,0),t(r,`}`);break;default:throw Error(`Unknown JSX child type: ${n.type}`)}},N=(n,r,i,a)=>{switch(n.type){case`Identifier`:f(r),e(r,n.name,0);break;case`MemberExpression`:P(n,r,a);break;case`CallExpression`:F(n,r,i,a);break;case`Literal`:x(n,r,i,a);break;case`BinaryExpression`:n.left.type===`PrivateIdentifier`?L(n,r,i):c(n,r,i,a);break;case`LogicalExpression`:c(n,r,i,a);break;case`ObjectExpression`:_e(n,r);break;case`ArrayExpression`:ve(n,r);break;case`AssignmentExpression`:ye(n,r,i,a);break;case`UpdateExpression`:be(n,r,i,a);break;case`UnaryExpression`:xe(n,r,i,a);break;case`ConditionalExpression`:Se(n,r,i,a);break;case`SequenceExpression`:Ce(n,r,i,a);break;case`ArrowFunctionExpression`:we(n,r,i,a);break;case`FunctionExpression`:S(n,r);break;case`ThisExpression`:f(r),e(r,`this`,0);break;case`Super`:f(r),e(r,`super`,0);break;case`NewExpression`:Te(n,r,i);break;case`TemplateLiteral`:z(n,r);break;case`TaggedTemplateExpression`:N(n.tag,r,19,a&2),z(n.quasi,r);break;case`ClassExpression`:E(n,r);break;case`AwaitExpression`:Ee(n,r,i,a);break;case`YieldExpression`:De(n,r,i);break;case`ImportExpression`:Oe(n,r,i,a);break;case`MetaProperty`:f(r),t(r,n.meta.name),t(r,`.`),e(r,n.property.name,0);break;case`ChainExpression`:ke(n,r,i,a);break;case`ParenthesizedExpression`:{let{expression:t}=n,o=s(t);o.type===`FunctionExpression`||o.type===`ArrowFunctionExpression`?(e(r,`(`,3),N(o,r,0,0),e(r,`)`,3)):N(t,r,i,a);break}case`JSXElement`:O(n,r);break;case`JSXFragment`:j(n,r);break;default:throw Error(`Unknown expression type: ${n.type}`)}},P=(n,r,i)=>{let{object:a}=n;if(n.computed){let t=s(a),o=t.type===`Identifier`&&t.name===`let`;o&&e(r,`(`,3),N(a,r,19,i&2),o&&e(r,`)`,3),n.optional&&e(r,`?.`,3),e(r,`[`,3),N(n.property,r,0,0),e(r,`]`,3)}else{N(a,r,19,i&2),n.optional?e(r,`?`,5):r.last===1&&e(r,` `,3),e(r,`.`,3);let{property:o}=n;o.type===`PrivateIdentifier`&&t(r,`#`),e(r,o.name,0)}},F=(n,r,i,a)=>{let o=i>=20||!!(a&2);o&&(t(r,`(`),(r.last|1)!=7&&(r.last=3)),N(n.callee,r,19,0),n.optional&&e(r,`?.`,3),I(n.arguments,r),o&&e(r,`)`,3)},I=(t,n)=>{let{length:r}=t;if(r===0){e(n,`()`,3);return}e(n,`(`,3);for(let i=0;i<r;i++){i>0&&e(n,`, `,3);let r=t[i];r.type===`SpreadElement`?(e(n,`...`,3),N(r.argument,n,1,0)):N(r,n,1,0)}e(n,`)`,3)},L=(n,r,i)=>{let a=i>=13;a&&e(r,`(`,3),t(r,`#`),e(r,n.left.name,0),e(r,` in `,3),N(n.right,r,12,1),a&&e(r,`)`,3)},_e=(t,n)=>{let r=(n.last-1|1)==7;r&&e(n,`(`,3);let{properties:i}=t,{length:a}=i,o=a>1;if(e(n,`{`,3),o){n.indentLevel++;for(let t=0;t<a;t++)e(n,t>0?`,
|
|
9
|
+
`:`
|
|
10
|
+
`,3),m(n),R(i[t],n);e(n,`
|
|
11
|
+
`,3),n.indentLevel--,m(n)}else a===1&&(e(n,` `,3),R(i[0],n),e(n,` `,3));e(n,`}`,3),r&&e(n,`)`,3)},R=(t,n)=>{if(t.type===`SpreadElement`){e(n,`...`,3),N(t.argument,n,1,0);return}let{key:r,value:i}=t;if(i.type===`FunctionExpression`){let{kind:a}=t,o=a===`get`,s=o||a===`set`;if(s&&e(n,o?`get `:`set `,3),t.method||s){i.async&&(f(n),e(n,`async `,3)),i.generator&&e(n,`*`,3),t.computed?(e(n,`[`,3),N(r,n,1,0),e(n,`]`,3)):H(r,n),C(i.params,n),i.body!=null&&(e(n,` `,3),T(i.body,n));return}}let a=!1,o=null;if(!t.computed&&r.type===`Identifier`){if(r.name===`__proto__`)a=t.shorthand;else{let e=s(i);e.type===`Identifier`&&r.name===e.name&&(a=!0,o=e)}}let{computed:c}=t;!c&&r.type===`Literal`&&typeof r.value==`number`&&(r.value<0||Object.is(r.value,-0)||!Number.isFinite(r.value))&&(c=!0),a?o===null?N(s(i),n,1,0):(f(n),e(n,o.name,0)):(c?(e(n,`[`,3),N(r,n,1,0),e(n,`]`,3)):H(r,n),e(n,`: `,3),N(i,n,1,0))},ve=(t,n)=>{let{elements:r}=t,{length:i}=r,a=i>2;e(n,`[`,3),a&&n.indentLevel++;for(let t=0;t<i;t++){a?(e(n,t===0?`
|
|
12
|
+
`:`,
|
|
13
|
+
`,3),m(n)):t!==0&&e(n,`, `,3);let o=r[t];o!=null&&(o.type===`SpreadElement`?(e(n,`...`,3),N(o.argument,n,1,0)):N(o,n,1,0)),t===i-1&&o==null&&e(n,`,`,3)}a&&(e(n,`
|
|
14
|
+
`,3),n.indentLevel--,m(n)),e(n,`]`,3)},ye=(t,n,r,a)=>{let{left:o}=t,s=r>=4;!s&&o.type===`ObjectPattern`&&(s=(n.last-1|1)==7),s&&e(n,`(`,3),U(o,n),e(n,i[t.operator],3),N(t.right,n,1,a),s&&e(n,`)`,3)},be=(t,n,r,i)=>{let a=r>=(t.prefix?18:19);a&&e(n,`(`,3);let s=o(t.operator);t.prefix?(p(n,s),e(n,t.operator,s),N(t.argument,n,18,i)):(N(t.argument,n,19,i),p(n,s),e(n,t.operator,s)),a&&e(n,`)`,3)},xe=(t,n,r,i)=>{let o=r>=18;o&&e(n,`(`,3);let{operator:s}=t,c=!1;if(s.length>1)f(n),e(n,s,0),e(n,` `,3),c=s===`delete`&&t.argument.type===`Literal`&&t.argument.value===1/0;else{let t=a(s);p(n,t),t===9&&n.last===4&&(t=10),e(n,s,t)}c&&e(n,`(0, `,3),N(t.argument,n,17,i),c&&e(n,`)`,3),o&&e(n,`)`,3)},Se=(t,n,r,i)=>{let a=r>=5,o=0;a?e(n,`(`,3):o=i&1,N(t.test,n,5,o),e(n,` ? `,3),N(t.consequent,n,3,0),e(n,` : `,3),N(t.alternate,n,3,o),a&&e(n,`)`,3)},Ce=(t,n,r,i)=>{let a=r>=1;a&&e(n,`(`,3);let o=i&-3,{expressions:s}=t,{length:c}=s;for(let t=0;t<c;t++)t>0&&e(n,`, `,3),N(s[t],n,0,o);a&&e(n,`)`,3)},we=(t,n,r,i)=>{let a=r>=4,o=a?i&-2:i;a&&e(n,`(`,3),t.async&&(f(n),e(n,`async `,3));let{returnType:s}=t;ce(t.params,n);let{body:c}=t;c.type===`BlockStatement`?T(c,n):(n.last=8,N(c,n,1,o)),a&&e(n,`)`,3)},Te=(t,n,r)=>{let i=r>=21;i&&e(n,`(`,3),f(n),e(n,`new `,3),N(t.callee,n,20,2),I(t.arguments,n),i&&e(n,`)`,3)},z=(n,r)=>{t(r,"`");let{quasis:i,expressions:a}=n,{length:o}=a,s=i[0];t(r,B(s));for(let n=0;n<o;n++){e(r,"${",3),N(a[n],r,0,0),t(r,`}`);let o=i[n+1];t(r,B(o))}e(r,"`",3)},B=e=>{let{raw:t}=e.value;return t.includes(`\r`)&&(t=t.replace(/\r\n?/g,`
|
|
15
|
+
`)),ie(t)},Ee=(t,n,r,i)=>{let a=r>=18;a&&e(n,`(`,3),f(n),e(n,`await `,3),N(t.argument,n,17,i),a&&e(n,`)`,3)},De=(t,n,r)=>{let i=r>=4;i&&e(n,`(`,3),f(n),e(n,`yield`,0),t.delegate&&e(n,`*`,3),t.argument!=null&&(e(n,` `,3),N(t.argument,n,3,0)),i&&e(n,`)`,3)},Oe=(n,r,i,a)=>{let o=i>=20||!!(a&2);o&&e(r,`(`,3),f(r),e(r,`import`,0),n.phase!=null&&(t(r,`.`),e(r,n.phase,0)),e(r,`(`,3),N(n.source,r,1,0),n.options!=null&&(e(r,`, `,3),N(n.options,r,1,0)),e(r,`)`,3),o&&e(r,`)`,3)},ke=(t,n,r,i)=>{r>=19||i&2?(e(n,`(`,3),N(t.expression,n,0,0),e(n,`)`,3)):N(t.expression,n,r,i)},V=(t,n)=>{switch(t.type){case`Identifier`:f(n),e(n,t.name,0);break;case`ObjectPattern`:Ae(t,n);break;case`ArrayPattern`:Me(t,n);break;case`AssignmentPattern`:V(t.left,n),e(n,` = `,3),N(t.right,n,1,0);break;case`RestElement`:e(n,`...`,3),V(t.argument,n);break;default:throw Error(`Unknown binding pattern type: ${t.type}`)}},Ae=(t,n)=>{let{properties:r}=t,{length:i}=r;if(i===0){e(n,`{}`,3);return}e(n,`{ `,3);for(let t=0;t<i;t++){t>0&&e(n,`, `,3);let i=r[t];i.type===`RestElement`?(e(n,`...`,3),V(i.argument,n)):je(i,n)}e(n,` }`,3)},je=(t,n)=>{let{key:r,value:i}=t,a=!1;!t.computed&&r.type===`Identifier`&&(i.type===`Identifier`&&r.name===i.name||i.type===`AssignmentPattern`&&i.left.type===`Identifier`&&r.name===i.left.name)&&(a=!0),a||(t.computed?(e(n,`[`,3),N(r,n,1,0),e(n,`]`,3)):H(r,n),e(n,`: `,3)),V(i,n)},H=(n,r)=>{switch(n.type){case`Identifier`:f(r),e(r,n.name,0);break;case`PrivateIdentifier`:t(r,`#`),e(r,n.name,0);break;case`Literal`:typeof n.value==`string`?b(r,n.value,n):x(n,r,1,0);break;default:N(n,r,1,0)}},Me=(t,n)=>{let{elements:r}=t,{length:i}=r,a=null;if(i>0){let e=r[i-1];e!=null&&e.type===`RestElement`&&(a=e,i--)}e(n,`[`,3);for(let t=0;t<i;t++){t!==0&&e(n,`, `,3);let o=r[t];o!=null&&V(o,n),t===i-1&&(o==null||a!==null)&&e(n,`,`,3)}a!==null&&(e(n,` `,3),V(a,n)),e(n,`]`,3)},U=(t,n)=>{switch(t.type){case`Identifier`:f(n),e(n,t.name,0);break;case`MemberExpression`:P(t,n,0);break;case`ObjectPattern`:Ne(t,n);break;case`ArrayPattern`:Fe(t,n);break;default:N(t,n,1,0)}},Ne=(t,n)=>{e(n,`{`,3);let{properties:r}=t,{length:i}=r;for(let t=0;t<i;t++){t>0&&e(n,`, `,3);let i=r[t];i.type===`RestElement`?(e(n,`...`,3),U(i.argument,n)):Pe(i,n)}e(n,`}`,3)},Pe=(t,n)=>{if(t.shorthand){let{value:r}=t;r.type===`AssignmentPattern`?(f(n),e(n,r.left.name,0),e(n,` = `,3),N(r.right,n,1,0)):(f(n),e(n,r.name,0))}else{let{key:r}=t;t.computed?(e(n,`[`,3),N(r,n,1,0),e(n,`]`,3)):H(r,n),e(n,`: `,3),W(t.value,n)}},W=(t,n)=>{t.type===`AssignmentPattern`?(U(t.left,n),e(n,` = `,3),N(t.right,n,1,0)):U(t,n)},Fe=(t,n)=>{let{elements:r}=t,{length:i}=r,a=null;if(i>0){let e=r[i-1];e!=null&&e.type===`RestElement`&&(a=e,i--)}e(n,`[`,3);for(let t=0;t<i;t++){t!==0&&e(n,`, `,3);let o=r[t];o!=null&&W(o,n),t===i-1&&(o==null||a!==null)&&e(n,`,`,3)}a!==null&&(i>0&&e(n,` `,3),e(n,`...`,3),U(a.argument,n)),e(n,`]`,3)},Ie=(n,r)=>{m(r),f(r),e(r,`import`,0),n.phase!=null&&(t(r,` `),e(r,n.phase,0));let{specifiers:i}=n,{length:a}=i;if(a===0){e(r,` `,3),b(r,n.source.value,n.source),G(n.attributes,r),e(r,`;
|
|
16
|
+
`,3);return}let o=!1;for(let t=0;t<a;t++){let n=i[t];switch(n.type){case`ImportDefaultSpecifier`:o?(e(r,` },`,3),o=!1):t===0?e(r,` `,3):e(r,`, `,3),f(r),e(r,n.local.name,0),t===a-1&&e(r,` `,3);break;case`ImportNamespaceSpecifier`:o?(e(r,` },`,3),o=!1):t===0?e(r,` `,3):e(r,`, `,3),e(r,`* as `,3),e(r,n.local.name,0),e(r,` `,3);break;default:{o?e(r,`, `,3):(t!==0&&e(r,`,`,3),o=!0,e(r,` { `,3));let i=K(n.imported,r),{local:a}=n;i!==a.name&&(e(r,` as `,3),e(r,a.name,0));break}}}e(r,o?` } from `:`from `,3),b(r,n.source.value,n.source),G(n.attributes,r),e(r,`;
|
|
17
|
+
`,3)},G=(t,n)=>{if(t==null)return;let{length:r}=t;if(r!==0){e(n,` with { `,3);for(let i=0;i<r;i++){i>0&&e(n,`, `,3);let r=t[i],{key:a}=r;a.type===`Identifier`?e(n,a.name,0):b(n,a.value,a),e(n,`: `,3),b(n,r.value.value,r.value)}e(n,` }`,3)}},K=(t,n)=>t.type===`Identifier`?(f(n),e(n,t.name,0),t.name):(b(n,t.value,t),t.value),Le=(t,n)=>{m(n),e(n,`export `,3);let{declaration:r}=t;if(r!=null){switch(r.type){case`VariableDeclaration`:Y(r,n,0),e(n,`;
|
|
18
|
+
`,3);break;case`FunctionDeclaration`:S(r,n),e(n,`
|
|
19
|
+
`,3);break;case`ClassDeclaration`:E(r,n),e(n,`
|
|
20
|
+
`,3);break;default:throw Error(`Unknown export declaration type: ${r.type}`)}return}e(n,`{`,3);let{specifiers:i}=t,{length:a}=i;if(a>0){e(n,` `,3);for(let t=0;t<a;t++){t>0&&e(n,`, `,3);let r=i[t];K(r.local,n)!==(r.exported.type===`Identifier`?r.exported.name:r.exported.value)&&(e(n,` as `,3),K(r.exported,n))}e(n,` `,3)}e(n,`}`,3),t.source!=null&&(e(n,` from `,3),b(n,t.source.value,t.source),G(t.attributes,n)),e(n,`;
|
|
21
|
+
`,3)},Re=(t,n)=>{m(n),e(n,`export *`,3),t.exported!=null&&(e(n,` as `,3),K(t.exported,n)),e(n,` from `,3),b(n,t.source.value,t.source),G(t.attributes,n),e(n,`;
|
|
22
|
+
`,3)},ze=(t,n)=>{m(n),e(n,`export default `,3);let{declaration:r}=t;switch(r.type){case`FunctionDeclaration`:S(r,n),e(n,`
|
|
23
|
+
`,3);break;case`ClassDeclaration`:E(r,n),e(n,`
|
|
24
|
+
`,3);break;default:n.last=6,N(r,n,1,0),e(n,`;
|
|
25
|
+
`,3)}},Be=(n,r)=>{n.hashbang!=null&&(t(r,`#!`),t(r,n.hashbang.value),e(r,`
|
|
26
|
+
`,3)),q(n.body,r)},q=(n,r)=>{let{length:i}=n;if(i===0)return;let a=0,o=n[0];for(;o.type===`ExpressionStatement`;)if(o.directive!=null){if(Ve(o,r),++a>=i)return;o=n[a]}else{let n=s(o.expression);n.type===`Literal`&&typeof n.value==`string`&&(m(r),t(r,`(`),b(r,n.value,n),e(r,`);
|
|
27
|
+
`,3),a++);break}for(;a<i;a++)J(n[a],r)},Ve=(n,r)=>{m(r);let{directive:i}=n,a=`"`,{length:o}=i;for(let e=0;e<o;e++){let t=i[e];if(t===`"`){a=`'`;break}if(t===`'`)break;t===`\\`&&e++}t(r,a),t(r,i),t(r,a),e(r,`;
|
|
28
|
+
`,3)},J=(t,n)=>{switch(t.type){case`ExpressionStatement`:He(t,n);break;case`VariableDeclaration`:m(n),Y(t,n,0),e(n,`;
|
|
29
|
+
`,3);break;case`BlockStatement`:m(n),X(t,n),e(n,`
|
|
30
|
+
`,3);break;case`IfStatement`:m(n),Z(t,n);break;case`ReturnStatement`:Ue(t,n);break;case`FunctionDeclaration`:m(n),S(t,n),e(n,`
|
|
31
|
+
`,3);break;case`ForStatement`:Ye(t,n);break;case`WhileStatement`:qe(t,n);break;case`DoWhileStatement`:Je(t,n);break;case`SwitchStatement`:Ge(t,n);break;case`BreakStatement`:m(n),f(n),e(n,`break`,0),t.label!=null&&(e(n,` `,3),e(n,t.label.name,0)),e(n,`;
|
|
32
|
+
`,3);break;case`ContinueStatement`:m(n),f(n),e(n,`continue`,0),t.label!=null&&(e(n,` `,3),e(n,t.label.name,0)),e(n,`;
|
|
33
|
+
`,3);break;case`TryStatement`:We(t,n);break;case`ThrowStatement`:m(n),f(n),e(n,`throw `,3),N(t.argument,n,0,0),e(n,`;
|
|
34
|
+
`,3);break;case`ForInStatement`:Xe(t,n);break;case`ForOfStatement`:Ze(t,n);break;case`ClassDeclaration`:m(n),E(t,n),e(n,`
|
|
35
|
+
`,3);break;case`LabeledStatement`:m(n),f(n),e(n,t.label.name,0),e(n,`:`,3),$(t.body,n);break;case`EmptyStatement`:m(n),e(n,`;
|
|
36
|
+
`,3);break;case`ImportDeclaration`:Ie(t,n);break;case`ExportNamedDeclaration`:Le(t,n);break;case`ExportDefaultDeclaration`:ze(t,n);break;case`ExportAllDeclaration`:Re(t,n);break;case`WithStatement`:m(n),f(n),e(n,`with(`,3),N(t.object,n,0,0),e(n,`)`,3),$(t.body,n);break;case`DebuggerStatement`:m(n),f(n),e(n,`debugger;
|
|
37
|
+
`,3);break;default:throw Error(`Unknown statement type: ${t.type}`)}},He=(t,n)=>{m(n),n.last=7,N(t.expression,n,0,0),e(n,`;
|
|
38
|
+
`,3)},Y=(t,n,r)=>{f(n),e(n,t.kind,0);let{declarations:i}=t,{length:a}=i;a>0&&e(n,` `,3);for(let t=0;t<a;t++){t>0&&e(n,`, `,3);let a=i[t],{id:o}=a;V(o,n),a.init!=null&&(e(n,` = `,3),N(a.init,n,1,r))}},X=(t,n)=>{let{body:r}=t,{length:i}=r;if(i===0){e(n,`{}`,3);return}e(n,`{
|
|
39
|
+
`,3),n.indentLevel++;for(let e=0;e<i;e++)J(r[e],n);n.indentLevel--,m(n),e(n,`}`,3)},Z=(t,n)=>{f(n),e(n,`if (`,3),N(t.test,n,0,0);let{consequent:r,alternate:i}=t;r.type===`BlockStatement`?(e(n,`) `,3),X(r,n),e(n,i==null?`
|
|
40
|
+
`:` `,3)):Q(r)?(e(n,`) {
|
|
41
|
+
`,3),n.indentLevel++,J(r,n),n.indentLevel--,m(n),e(n,`}`,3),e(n,i==null?`
|
|
42
|
+
`:` `,3)):(e(n,`)`,3),$(r,n),i!=null&&m(n)),i!=null&&(f(n),e(n,`else`,0),i.type===`BlockStatement`?(e(n,` `,3),X(i,n),e(n,`
|
|
43
|
+
`,3)):i.type===`IfStatement`?(e(n,` `,3),Z(i,n)):$(i,n))},Q=e=>{for(;;)switch(e.type){case`IfStatement`:if(e.alternate==null)return!0;e=e.alternate;break;case`ForStatement`:case`ForOfStatement`:case`ForInStatement`:case`WhileStatement`:case`WithStatement`:case`LabeledStatement`:e=e.body;break;default:return!1}},Ue=(t,n)=>{m(n),f(n);let{argument:r}=t;r==null?e(n,`return`,0):(e(n,`return `,3),N(r,n,0,0)),e(n,`;
|
|
44
|
+
`,3)},We=(t,n)=>{m(n),f(n),e(n,`try `,3),X(t.block,n);let{handler:r}=t;r!=null&&(e(n,` catch`,0),r.param!=null&&(e(n,` (`,3),V(r.param,n),e(n,`)`,3)),e(n,` `,3),X(r.body,n)),t.finalizer!=null&&(e(n,` finally `,3),X(t.finalizer,n)),e(n,`
|
|
45
|
+
`,3)},Ge=(t,n)=>{m(n),f(n),e(n,`switch (`,3),N(t.discriminant,n,0,0),e(n,`) `,3);let{cases:r}=t,{length:i}=r;if(i===0){e(n,`{}
|
|
46
|
+
`,3);return}e(n,`{
|
|
47
|
+
`,3),n.indentLevel++;for(let e=0;e<i;e++)Ke(r[e],n);n.indentLevel--,m(n),e(n,`}
|
|
48
|
+
`,3)},Ke=(t,n)=>{m(n),t.test==null?e(n,`default`,0):(e(n,`case `,3),N(t.test,n,0,0)),e(n,`:`,3);let{consequent:r}=t,{length:i}=r;if(i===1){$(r[0],n);return}e(n,`
|
|
49
|
+
`,3),n.indentLevel++;for(let e=0;e<i;e++)J(r[e],n);n.indentLevel--},qe=(t,n)=>{m(n),f(n),e(n,`while (`,3),N(t.test,n,0,0),e(n,`)`,3),$(t.body,n)},Je=(t,n)=>{m(n),f(n),e(n,`do`,0);let{body:r}=t;r.type===`BlockStatement`?(e(n,` `,3),X(r,n),e(n,` `,3)):r.type===`EmptyStatement`?(m(n),e(n,`;
|
|
50
|
+
`,3)):(e(n,`
|
|
51
|
+
`,3),n.indentLevel++,J(r,n),n.indentLevel--,m(n)),e(n,`while (`,3),N(t.test,n,0,0),e(n,`);
|
|
52
|
+
`,3)},Ye=(t,n)=>{m(n),f(n),e(n,`for (`,3);let{init:r}=t;r!=null&&(r.type===`VariableDeclaration`?Y(r,n,1):N(r,n,0,1));let{test:i,update:a}=t;i==null?e(n,`;`,3):(e(n,`; `,3),N(i,n,0,0)),a==null?e(n,`;)`,3):(e(n,`; `,3),N(a,n,0,0),e(n,`)`,3)),$(t.body,n)},Xe=(t,n)=>{m(n),f(n),e(n,`for (`,3);let{left:r}=t;r.type===`VariableDeclaration`?Y(r,n,1):U(r,n),e(n,` in `,3),N(t.right,n,0,0),e(n,`)`,3),$(t.body,n)},Ze=(t,n)=>{m(n),f(n),e(n,`for`,0),t.await&&e(n,` await`,0),e(n,` (`,3);let{left:r}=t;if(r.type===`VariableDeclaration`)Y(r,n,0);else{let i=s(r),a=Qe(r)||!t.await&&i.type===`Identifier`&&i.name===`async`;a&&e(n,`(`,3),U(r,n),a&&e(n,`)`,3)}e(n,` of `,3),N(t.right,n,1,0),e(n,`)`,3),$(t.body,n)},Qe=e=>{for(;;)switch(e.type){case`Identifier`:return e.name===`let`;case`MemberExpression`:if(e.computed){let t=s(e.object);if(t.type===`Identifier`&&t.name===`let`)return!1}e=e.object;break;case`ParenthesizedExpression`:e=e.expression;break;default:return!1}},$=(t,n)=>{t.type===`BlockStatement`?(e(n,` `,3),X(t,n),e(n,`
|
|
53
|
+
`,3)):t.type===`EmptyStatement`?e(n,`;
|
|
54
|
+
`,3):(n.pendingIndentAsSpace=!0,J(t,n))},$e=(e,t,n)=>(e.type===`Program`?Be(e,t):J(e,t),t.output);export{$e as printSync};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const e=(e,t)=>{let{output:n,mapOffsets:r,mapPositions:i,mapNames:a}=e,o=t.file||t._file,s={line:1,column:0},c={original:null,generated:s,name:void 0,source:o},l=1,u=0,d=n.indexOf(`
|
|
2
|
+
`);d===-1&&(d=1/0);let{length:f}=r;for(let e=0;e<f;e++){let o=r[e];for(;o>d;){l++,u=d+1;let e=n.indexOf(`
|
|
3
|
+
`,u);d=e===-1?1/0:e}s.line=l,s.column=o-u,c.original=i[e],c.name=a[e],t.addMapping(c)}},t=(e,t,n)=>{e.last=n,e.output+=t},n=(e,t)=>{e.output+=t},r=(e,t,n,r)=>{r.loc!=null&&(e.mapOffsets.push(e.output.length),e.mapPositions.push(r.loc.start),e.mapNames.push(r.name)),e.last=n,e.output+=t},i=(e,t,n)=>{n.loc!=null&&(e.mapOffsets.push(e.output.length),e.mapPositions.push(n.loc.start),e.mapNames.push(n.name)),e.output+=t},a={__proto__:null,"**":17,"*":16,"/":16,"%":16,"+":15,"-":15,"<<":14,">>":14,">>>":14,"<":13,">":13,"<=":13,">=":13,instanceof:13,in:13,"==":12,"!=":12,"===":12,"!==":12,"&":11,"^":10,"|":9,"&&":8,"||":7,"??":6},o={__proto__:null,"**":` ** `,"*":` * `,"/":` / `,"%":` % `,"+":` + `,"-":` - `,"<<":` << `,">>":` >> `,">>>":` >>> `,"<":` < `,">":` > `,"<=":` <= `,">=":` >= `,instanceof:` instanceof `,in:` in `,"==":` == `,"!=":` != `,"===":` === `,"!==":` !== `,"&":` & `,"^":` ^ `,"|":` | `,"&&":` && `,"||":` || `,"??":` ?? `},s={__proto__:null,"=":` = `,"+=":` += `,"-=":` -= `,"*=":` *= `,"/=":` /= `,"%=":` %= `,"**=":` **= `,"<<=":` <<= `,">>=":` >>= `,">>>=":` >>>= `,"&=":` &= `,"^=":` ^= `,"|=":` |= `,"&&=":` &&= `,"||=":` ||= `,"??=":` ??= `},c=e=>{switch(e){case`+`:return 11;case`-`:return 13;case`!`:return 9;default:return 3}},l=e=>e===`++`?12:14,u=e=>{for(;e.type===`ParenthesizedExpression`;)e=e.expression;return e},d=(e,t,n,r)=>{let i={e,precedence:n,ctx:r,leftPrecedence:0,operator:e.operator,wrap:!1,rightPrecedence:0,parent:null};for(;;){f(i,t);let e=u(i.e.left);if(e.type===`BinaryExpression`||e.type===`LogicalExpression`){if(e.type===`BinaryExpression`&&e.left.type===`PrivateIdentifier`){R(e,t,0),p(i,t);break}i={e,precedence:i.leftPrecedence,ctx:i.ctx,leftPrecedence:0,operator:i.operator,wrap:!1,rightPrecedence:0,parent:i}}else{F(i.e.left,t,i.leftPrecedence,i.ctx),p(i,t);break}}for(;(i=i.parent)!==null;)p(i,t)},f=(e,n)=>{let{e:r}=e,i=r.operator,o=a[i],s=e.precedence>=o&&(!ee(e.operator)||e.precedence!==a[e.operator]);e.operator=i,e.wrap=s||i===`in`&&!!(e.ctx&1),e.wrap&&(t(n,`(`,3),e.ctx&=-2);let c=o-1;if(e.leftPrecedence=c,e.rightPrecedence=c,o===17?e.leftPrecedence=o:e.rightPrecedence=o,i===`??`){let t=u(r.left);t.type===`LogicalExpression`&&t.operator!==`??`&&(e.leftPrecedence=18);let n=u(r.right);n.type===`LogicalExpression`&&n.operator!==`??`&&(e.rightPrecedence=18)}else if(i===`**`){let t=u(r.left);(t.type===`UnaryExpression`||t.type===`AwaitExpression`||t.type===`Literal`&&(typeof t.value==`number`||t.bigint!=null))&&(e.leftPrecedence=21)}},ee=e=>e===`&&`||e===`||`||e===`??`,p=(e,n)=>{t(n,o[e.operator],3),F(e.e.right,n,e.rightPrecedence,e.ctx),e.wrap&&t(n,`)`,3)},m=e=>{e.last<=2&&t(e,` `,3)},h=(e,t)=>{let n=e.last;n>=10&&te(e,n,t)},te=(e,n,r)=>{(n===11&&(r===11||r===12)||n===13&&(r===13||r===14)||n===10&&r===14)&&t(e,` `,3)},g=e=>{if(e.pendingIndentAsSpace){t(e,` `,3),e.pendingIndentAsSpace=!1;return}let n=e.indentLevel;if(n>0){let{indents:r}=e;t(e,n<r.length?r[n]:ne(e,n),3)}},ne=(e,t)=>{let{indents:n,indentString:r}=e,{length:i}=n,a=n[i-1];for(;i<=t;i++)a+=r,a.charCodeAt(0),n.push(a);return a},_=(e,t,n)=>{Number.isInteger(t)?t<1e3?r(e,String(t),1,n):re(e,t,n):ie(e,t,n)},re=(e,a,o)=>{let s=String(a);if(a>=1e21){if(y(e,a,s.length-1,o))return;v(e,s,s.indexOf(`e`),o);return}let{length:c}=s;if(!y(e,a,c,o)){if(s.charCodeAt(c-1)===48){let r=1;for(;s.charCodeAt(c-1-r)===48;)r++;let a=String(r);if(a.length+1<r){i(e,s.slice(0,c-r),o),n(e,`e`),t(e,a,0);return}}r(e,s,1,o)}},ie=(e,a,o)=>{let s=String(a);if(s.charCodeAt(0)===48){if(s.charCodeAt(2)===48){let r=3;for(;s.charCodeAt(r)===48;)r++;let a=String(s.length-2);if(a.length+2<r-1){i(e,s.slice(r),o),n(e,`e-`),t(e,a,0);return}}r(e,s.slice(1),0,o);return}let c=s.indexOf(`e`);if(c===-1){r(e,s,0,o);return}v(e,s,c,o)},v=(e,r,a,o)=>{let s=r.charCodeAt(a+1)===43?r.slice(a+2):r.slice(a+1);if(a>1){let c=String(Number(s)-(a-2));if(c.length<=s.length){i(e,r[0],o),n(e,r.slice(2,a)),n(e,`e`),t(e,c,0);return}}i(e,r.slice(0,a+1),o),t(e,s,0)},y=(e,n,r,a)=>{if(r<13)return!1;let o=BigInt(n).toString(16);return o.length+2>=r?!1:(i(e,`0x`,a),t(e,o,0),!0)},ae=/[\0\x07\b\v\f\n\r\x1B\\"<\u2028\u2029\xA0\uD800-\uDFFF]/,b=(e,r,a)=>{i(e,`"`,a),ae.test(r)?oe(e,r):n(e,r),t(e,`"`,3)},oe=(e,t)=>{let r=0,{length:i}=t;for(let a=0;a<i;a++){let o=null,s=t.charCodeAt(a);switch(s){case 0:if(a+1<i){let e=t.charCodeAt(a+1);if(e>=48&&e<=57){o=`\\x00`;break}}o=`\\0`;break;case 7:o=`\\x07`;break;case 8:o=`\\b`;break;case 11:o=`\\v`;break;case 12:o=`\\f`;break;case 10:o=`\\n`;break;case 13:o=`\\r`;break;case 27:o=`\\x1B`;break;case 92:o=`\\\\`;break;case 34:o=`\\"`;break;case 60:if(/^<\/script/i.test(t.slice(a,a+8))){o=`<\\`;break}continue;case 8232:o=`\\u2028`;break;case 8233:o=`\\u2029`;break;case 160:o=`\\xA0`;break;default:if(s>=55296&&s<=57343){if(s<=56319&&a+1<i){let e=t.charCodeAt(a+1);if(e>=56320&&e<=57343){a++;continue}}o=`\\u`+s.toString(16);break}continue}n(e,t.slice(r,a)),n(e,o),r=a+1}n(e,t.slice(r))},x=e=>e.includes(`</`)?e.replace(/<\/(script)/gi,`<\\/$1`):e,S=(e,t,n,i)=>{let{value:a}=e;switch(typeof a){case`string`:b(t,a,e);break;case`number`:se(e,t,n,i);break;case`boolean`:m(t),r(t,a?`true`:`false`,0,e);break;default:e.regex==null?e.bigint==null?(m(t),r(t,`null`,0,e)):le(e,t,n):ce(e,t)}},se=(e,i,a,o)=>{let{value:s}=e;if(o&4&&e.raw!=null){let{raw:t}=e;r(i,t,t[t.length-1]===`.`?3:0,e);return}if(s>0&&s<1/0)m(i),_(i,s,e);else if(Number.isNaN(s))m(i),r(i,`NaN`,0,e);else if(Number.isFinite(s))Object.is(s,0)?(m(i),r(i,`0`,1,e)):a>=18?(n(i,`(-`),_(i,-s,e),t(i,`)`,3)):(h(i,13),n(i,`-`),_(i,-s,e));else{let o=s<0,c=o&&a>=18;c&&t(i,`(`,3),o?(h(i,13),n(i,`-`)):m(i),r(i,`Infinity`,0,e),c&&t(i,`)`,3)}},ce=(e,r)=>{i(r,`/`,e),n(r,e.regex.pattern);let{flags:a}=e.regex;a===``?t(r,`/`,2):(n(r,`/`),t(r,a,0))},le=(e,r,a)=>{m(r);let o=e.bigint;o.startsWith(`-`)&&a>=18?(i(r,`(`,e),n(r,o),t(r,`n)`,3)):(i(r,o,e),t(r,`n`,0))},C=(e,n)=>{let i=!1;e.type===`FunctionExpression`&&(i=(n.last|1)==7),i&&t(n,`(`,3),m(n),r(n,e.async?`async function`:`function`,0,e),e.generator&&t(n,`* `,3),e.id!=null&&(m(n),r(n,e.id.name,0,e.id)),w(e.params,n),e.body==null?t(n,`;`,3):(t(n,` `,3),E(e.body,n)),i&&t(n,`)`,3)},w=(e,n)=>{if(e.length===0){t(n,`()`,3);return}t(n,`(`,3),T(e,n),t(n,`)`,3)},T=(e,n)=>{let{length:r}=e;for(let i=0;i<r;i++){i>0&&t(n,`, `,3);let r=e[i],{decorators:a}=r;a!=null&&a.length>0&&O(a,n),H(r,n)}},E=(e,n)=>{let i=e.body;if(i.length===0){r(n,`{}`,3,e);return}r(n,`{
|
|
4
|
+
`,3,e),n.indentLevel++,J(i,n),n.indentLevel--,g(n),t(n,`}`,3)},ue=(e,n)=>{if(e.length===0){t(n,`() => `,3);return}t(n,`(`,3),T(e,n),t(n,`) => `,3)},D=(e,n)=>{let i=!1;e.type===`ClassExpression`&&(i=(n.last|1)==7),i&&t(n,`(`,3);let{decorators:a}=e;a!=null&&a.length>0&&O(a,n),m(n),r(n,`class`,0,e),e.id!=null&&(t(n,` `,3),r(n,e.id.name,0,e.id)),e.superClass!=null&&(t(n,` extends `,3),F(e.superClass,n,19,0));let{implements:o}=e;t(n,` `,3),fe(e.body,n),i&&t(n,`)`,3)},O=(e,n)=>{let{length:i}=e;for(let a=0;a<i;a++){let i=e[a];r(n,`@`,3,i);let{expression:o}=i,s=de(o);s&&t(n,`(`,3),F(o,n,0,0),s&&t(n,`)`,3),t(n,` `,3)}},de=e=>{for(;;)switch(e.type){case`Identifier`:return!1;case`MemberExpression`:return e.computed;case`CallExpression`:e=e.callee;break;default:return!0}},fe=(e,n)=>{let{body:i}=e,{length:a}=i;if(a===0){r(n,`{}`,3,e);return}r(n,`{
|
|
5
|
+
`,3,e),n.indentLevel++;for(let e=0;e<a;e++){g(n);let r=i[e];switch(r.type){case`MethodDefinition`:pe(r,n),t(n,`
|
|
6
|
+
`,3);break;case`PropertyDefinition`:k(r,n),t(n,`;
|
|
7
|
+
`,3);break;case`StaticBlock`:me(r,n),t(n,`
|
|
8
|
+
`,3);break;case`AccessorProperty`:he(r,n),t(n,`;
|
|
9
|
+
`,3);break;default:throw Error(`Unknown class element type: ${r.type}`)}}n.indentLevel--,g(n),t(n,`}`,3)},pe=(e,n)=>{let{decorators:r}=e;r!=null&&r.length>0&&O(r,n),e.static&&(m(n),t(n,`static `,3));let{kind:i}=e;i===`get`?(m(n),t(n,`get `,3)):i===`set`&&(m(n),t(n,`set `,3));let a=e.value;a.async&&(m(n),t(n,`async `,3)),a.generator&&t(n,`*`,3),e.computed?(t(n,`[`,3),F(e.key,n,1,0),t(n,`]`,3)):U(e.key,n),w(a.params,n),a.body==null?t(n,`;`,3):(t(n,` `,3),E(a.body,n))},k=(e,n)=>{let{decorators:r}=e;r!=null&&r.length>0&&O(r,n),e.static&&(m(n),t(n,`static `,3)),e.computed?(t(n,`[`,3),F(e.key,n,1,0),t(n,`]`,3)):U(e.key,n),e.value!=null&&(t(n,` = `,3),F(e.value,n,1,0))},me=(e,n)=>{m(n),r(n,`static `,3,e);let{body:i}=e,{length:a}=i;if(a===0){t(n,`{}`,3);return}t(n,`{
|
|
10
|
+
`,3),n.indentLevel++;for(let e=0;e<a;e++)Y(i[e],n);n.indentLevel--,g(n),t(n,`}`,3)},he=(e,n)=>{let{decorators:i}=e;i!=null&&i.length>0&&O(i,n),e.static&&(m(n),t(n,`static `,3)),m(n),r(n,`accessor`,0,e),e.computed?(t(n,` [`,3),F(e.key,n,1,0),t(n,`]`,3)):(t(n,` `,3),U(e.key,n)),e.value!=null&&(t(n,` = `,3),F(e.value,n,1,0))},A=(e,r)=>{let{openingElement:a}=e;i(r,`<`,a),j(a.name,r);let{attributes:o}=a,{length:s}=o;for(let e=0;e<s;e++){n(r,` `);let i=o[e];i.type===`JSXSpreadAttribute`?(t(r,`{...`,3),F(i.argument,r,1,0),n(r,`}`)):ge(i,r)}let{closingElement:c}=e;if(c==null){t(r,` />`,3);return}n(r,`>`);let{children:l}=e,u=l.length;for(let e=0;e<u;e++)P(l[e],r);i(r,`</`,c),j(c.name,r),t(r,`>`,3)},j=(e,t)=>{switch(e.type){case`JSXIdentifier`:i(t,e.name,e);break;case`JSXMemberExpression`:j(e.object,t),n(t,`.`),j(e.property,t);break;case`JSXNamespacedName`:i(t,e.namespace.name,e),n(t,`:`),n(t,e.name.name);break;case`ThisExpression`:i(t,`this`,e);break;default:throw Error(`Unknown JSX name type: ${e.type}`)}},ge=(e,t)=>{let{name:r}=e;r.type===`JSXNamespacedName`?(i(t,r.namespace.name,r),n(t,`:`),n(t,r.name.name)):i(t,r.name,r);let{value:a}=e;a!=null&&(n(t,`=`),_e(a,t))},_e=(e,t)=>{switch(e.type){case`Literal`:{let{raw:r}=e,a=r==null?String(e.value):r.slice(1,-1),o=a.includes(`"`)?`'`:`"`;i(t,o,e),n(t,a),n(t,o);break}case`JSXExpressionContainer`:M(e,t);break;case`JSXElement`:A(e,t);break;case`JSXFragment`:N(e,t);break;default:throw Error(`Unknown JSX attribute value type: ${e.type}`)}},M=(e,r)=>{t(r,`{`,3),e.expression.type!==`JSXEmptyExpression`&&F(e.expression,r,0,0),n(r,`}`)},N=(e,t)=>{i(t,`<>`,e.openingFragment);let{children:n}=e,{length:a}=n;for(let e=0;e<a;e++)P(n[e],t);r(t,`</>`,3,e.closingFragment)},P=(e,r)=>{switch(e.type){case`JSXText`:i(r,e.raw==null?e.value:e.raw,e);break;case`JSXExpressionContainer`:M(e,r);break;case`JSXElement`:A(e,r);break;case`JSXFragment`:N(e,r);break;case`JSXSpreadChild`:t(r,`{...`,3),F(e.expression,r,0,0),n(r,`}`);break;default:throw Error(`Unknown JSX child type: ${e.type}`)}},F=(e,a,o,s)=>{switch(e.type){case`Identifier`:m(a),r(a,e.name,0,e);break;case`MemberExpression`:I(e,a,s);break;case`CallExpression`:ve(e,a,o,s);break;case`Literal`:S(e,a,o,s);break;case`BinaryExpression`:e.left.type===`PrivateIdentifier`?R(e,a,o):d(e,a,o,s);break;case`LogicalExpression`:d(e,a,o,s);break;case`ObjectExpression`:ye(e,a);break;case`ArrayExpression`:be(e,a);break;case`AssignmentExpression`:xe(e,a,o,s);break;case`UpdateExpression`:Se(e,a,o,s);break;case`UnaryExpression`:Ce(e,a,o,s);break;case`ConditionalExpression`:we(e,a,o,s);break;case`SequenceExpression`:Te(e,a,o,s);break;case`ArrowFunctionExpression`:Ee(e,a,o,s);break;case`FunctionExpression`:C(e,a);break;case`ThisExpression`:m(a),r(a,`this`,0,e);break;case`Super`:m(a),r(a,`super`,0,e);break;case`NewExpression`:De(e,a,o);break;case`TemplateLiteral`:B(e,a);break;case`TaggedTemplateExpression`:F(e.tag,a,19,s&2),B(e.quasi,a);break;case`ClassExpression`:D(e,a);break;case`AwaitExpression`:Oe(e,a,o,s);break;case`YieldExpression`:ke(e,a,o);break;case`ImportExpression`:Ae(e,a,o,s);break;case`MetaProperty`:m(a),i(a,e.meta.name,e),n(a,`.`),t(a,e.property.name,0);break;case`ChainExpression`:je(e,a,o,s);break;case`ParenthesizedExpression`:{let{expression:n}=e,r=u(n);r.type===`FunctionExpression`||r.type===`ArrowFunctionExpression`?(t(a,`(`,3),F(r,a,0,0),t(a,`)`,3)):F(n,a,o,s);break}case`JSXElement`:A(e,a);break;case`JSXFragment`:N(e,a);break;default:throw Error(`Unknown expression type: ${e.type}`)}},I=(e,n,a)=>{let{object:o}=e;if(e.computed){let r=u(o),i=r.type===`Identifier`&&r.name===`let`;i&&t(n,`(`,3),F(o,n,19,a&2),i&&t(n,`)`,3),e.optional&&t(n,`?.`,3),t(n,`[`,3),F(e.property,n,0,0),t(n,`]`,3)}else{F(o,n,19,a&2),e.optional?t(n,`?`,5):n.last===1&&t(n,` `,3),t(n,`.`,3);let{property:s}=e;s.type===`PrivateIdentifier`?(i(n,`#`,s),t(n,s.name,0)):r(n,s.name,0,s)}},ve=(e,r,i,a)=>{let o=i>=20||!!(a&2);o&&(n(r,`(`),(r.last|1)!=7&&(r.last=3)),F(e.callee,r,19,0),e.optional&&t(r,`?.`,3),L(e.arguments,r),o&&t(r,`)`,3)},L=(e,n)=>{let{length:r}=e;if(r===0){t(n,`()`,3);return}t(n,`(`,3);for(let i=0;i<r;i++){i>0&&t(n,`, `,3);let r=e[i];r.type===`SpreadElement`?(t(n,`...`,3),F(r.argument,n,1,0)):F(r,n,1,0)}t(n,`)`,3)},R=(e,n,r)=>{let a=r>=13;a&&t(n,`(`,3),i(n,`#`,e.left),t(n,e.left.name,0),t(n,` in `,3),F(e.right,n,12,1),a&&t(n,`)`,3)},ye=(e,n)=>{let i=(n.last-1|1)==7;i&&t(n,`(`,3);let{properties:a}=e,{length:o}=a,s=o>1;if(r(n,`{`,3,e),s){n.indentLevel++;for(let e=0;e<o;e++)t(n,e>0?`,
|
|
11
|
+
`:`
|
|
12
|
+
`,3),g(n),z(a[e],n);t(n,`
|
|
13
|
+
`,3),n.indentLevel--,g(n)}else o===1&&(t(n,` `,3),z(a[0],n),t(n,` `,3));t(n,`}`,3),i&&t(n,`)`,3)},z=(e,n)=>{if(e.type===`SpreadElement`){r(n,`...`,3,e),F(e.argument,n,1,0);return}let{key:i,value:a}=e;if(a.type===`FunctionExpression`){let{kind:r}=e,o=r===`get`,s=o||r===`set`;if(s&&t(n,o?`get `:`set `,3),e.method||s){a.async&&(m(n),t(n,`async `,3)),a.generator&&t(n,`*`,3),e.computed?(t(n,`[`,3),F(i,n,1,0),t(n,`]`,3)):U(i,n),w(a.params,n),a.body!=null&&(t(n,` `,3),E(a.body,n));return}}let o=!1,s=null;if(!e.computed&&i.type===`Identifier`){if(i.name===`__proto__`)o=e.shorthand;else{let e=u(a);e.type===`Identifier`&&i.name===e.name&&(o=!0,s=e)}}let{computed:c}=e;!c&&i.type===`Literal`&&typeof i.value==`number`&&(i.value<0||Object.is(i.value,-0)||!Number.isFinite(i.value))&&(c=!0),o?s===null?F(u(a),n,1,0):(m(n),r(n,s.name,0,s)):(c?(t(n,`[`,3),F(i,n,1,0),t(n,`]`,3)):U(i,n),t(n,`: `,3),F(a,n,1,0))},be=(e,n)=>{let{elements:i}=e,{length:a}=i,o=a>2;r(n,`[`,3,e),o&&n.indentLevel++;for(let e=0;e<a;e++){o?(t(n,e===0?`
|
|
14
|
+
`:`,
|
|
15
|
+
`,3),g(n)):e!==0&&t(n,`, `,3);let r=i[e];r!=null&&(r.type===`SpreadElement`?(t(n,`...`,3),F(r.argument,n,1,0)):F(r,n,1,0)),e===a-1&&r==null&&t(n,`,`,3)}o&&(t(n,`
|
|
16
|
+
`,3),n.indentLevel--,g(n)),t(n,`]`,3)},xe=(e,n,r,i)=>{let{left:a}=e,o=r>=4;!o&&a.type===`ObjectPattern`&&(o=(n.last-1|1)==7),o&&t(n,`(`,3),W(a,n),t(n,s[e.operator],3),F(e.right,n,1,i),o&&t(n,`)`,3)},Se=(e,n,i,a)=>{let o=i>=(e.prefix?18:19);o&&t(n,`(`,3);let s=l(e.operator);e.prefix?(h(n,s),r(n,e.operator,s,e),F(e.argument,n,18,a)):(F(e.argument,n,19,a),h(n,s),t(n,e.operator,s)),o&&t(n,`)`,3)},Ce=(e,n,i,a)=>{let o=i>=18;o&&t(n,`(`,3);let{operator:s}=e,l=!1;if(s.length>1)m(n),r(n,s,0,e),t(n,` `,3),l=s===`delete`&&e.argument.type===`Literal`&&e.argument.value===1/0;else{let t=c(s);h(n,t),t===9&&n.last===4&&(t=10),r(n,s,t,e)}l&&t(n,`(0, `,3),F(e.argument,n,17,a),l&&t(n,`)`,3),o&&t(n,`)`,3)},we=(e,n,r,i)=>{let a=r>=5,o=0;a?t(n,`(`,3):o=i&1,F(e.test,n,5,o),t(n,` ? `,3),F(e.consequent,n,3,0),t(n,` : `,3),F(e.alternate,n,3,o),a&&t(n,`)`,3)},Te=(e,n,r,i)=>{let a=r>=1;a&&t(n,`(`,3);let o=i&-3,{expressions:s}=e,{length:c}=s;for(let e=0;e<c;e++)e>0&&t(n,`, `,3),F(s[e],n,0,o);a&&t(n,`)`,3)},Ee=(e,n,i,a)=>{let o=i>=4,s=o?a&-2:a;o&&t(n,`(`,3),e.async&&(m(n),r(n,`async `,3,e));let{returnType:c}=e;ue(e.params,n);let{body:l}=e;l.type===`BlockStatement`?E(l,n):(n.last=8,F(l,n,1,s)),o&&t(n,`)`,3)},De=(e,n,i)=>{let a=i>=21;a&&t(n,`(`,3),m(n),r(n,`new `,3,e),F(e.callee,n,20,2),L(e.arguments,n),a&&t(n,`)`,3)},B=(e,r)=>{i(r,"`",e);let{quasis:a,expressions:o}=e,{length:s}=o,c=a[0];i(r,V(c),c);for(let e=0;e<s;e++){t(r,"${",3),F(o[e],r,0,0),n(r,`}`);let s=a[e+1];i(r,V(s),s)}t(r,"`",3)},V=e=>{let{raw:t}=e.value;return t.includes(`\r`)&&(t=t.replace(/\r\n?/g,`
|
|
17
|
+
`)),x(t)},Oe=(e,n,i,a)=>{let o=i>=18;o&&t(n,`(`,3),m(n),r(n,`await `,3,e),F(e.argument,n,17,a),o&&t(n,`)`,3)},ke=(e,n,i)=>{let a=i>=4;a&&t(n,`(`,3),m(n),r(n,`yield`,0,e),e.delegate&&t(n,`*`,3),e.argument!=null&&(t(n,` `,3),F(e.argument,n,3,0)),a&&t(n,`)`,3)},Ae=(e,i,a,o)=>{let s=a>=20||!!(o&2);s&&t(i,`(`,3),m(i),r(i,`import`,0,e),e.phase!=null&&(n(i,`.`),t(i,e.phase,0)),t(i,`(`,3),F(e.source,i,1,0),e.options!=null&&(t(i,`, `,3),F(e.options,i,1,0)),t(i,`)`,3),s&&t(i,`)`,3)},je=(e,n,r,i)=>{r>=19||i&2?(t(n,`(`,3),F(e.expression,n,0,0),t(n,`)`,3)):F(e.expression,n,r,i)},H=(e,n)=>{switch(e.type){case`Identifier`:m(n),r(n,e.name,0,e);break;case`ObjectPattern`:Me(e,n);break;case`ArrayPattern`:Pe(e,n);break;case`AssignmentPattern`:H(e.left,n),t(n,` = `,3),F(e.right,n,1,0);break;case`RestElement`:r(n,`...`,3,e),H(e.argument,n);break;default:throw Error(`Unknown binding pattern type: ${e.type}`)}},Me=(e,n)=>{let{properties:i}=e,{length:a}=i;if(a===0){r(n,`{}`,3,e);return}r(n,`{ `,3,e);for(let e=0;e<a;e++){e>0&&t(n,`, `,3);let r=i[e];r.type===`RestElement`?(t(n,`...`,3),H(r.argument,n)):Ne(r,n)}t(n,` }`,3)},Ne=(e,n)=>{let{key:r,value:i}=e,a=!1;!e.computed&&r.type===`Identifier`&&(i.type===`Identifier`&&r.name===i.name||i.type===`AssignmentPattern`&&i.left.type===`Identifier`&&r.name===i.left.name)&&(a=!0),a||(e.computed?(t(n,`[`,3),F(r,n,1,0),t(n,`]`,3)):U(r,n),t(n,`: `,3)),H(i,n)},U=(e,n)=>{switch(e.type){case`Identifier`:m(n),r(n,e.name,0,e);break;case`PrivateIdentifier`:i(n,`#`,e),t(n,e.name,0);break;case`Literal`:typeof e.value==`string`?b(n,e.value,e):S(e,n,1,0);break;default:F(e,n,1,0)}},Pe=(e,n)=>{let{elements:i}=e,{length:a}=i,o=null;if(a>0){let e=i[a-1];e!=null&&e.type===`RestElement`&&(o=e,a--)}r(n,`[`,3,e);for(let e=0;e<a;e++){e!==0&&t(n,`, `,3);let r=i[e];r!=null&&H(r,n),e===a-1&&(r==null||o!==null)&&t(n,`,`,3)}o!==null&&(t(n,` `,3),H(o,n)),t(n,`]`,3)},W=(e,t)=>{switch(e.type){case`Identifier`:m(t),r(t,e.name,0,e);break;case`MemberExpression`:I(e,t,0);break;case`ObjectPattern`:Fe(e,t);break;case`ArrayPattern`:Le(e,t);break;default:F(e,t,1,0)}},Fe=(e,n)=>{r(n,`{`,3,e);let{properties:i}=e,{length:a}=i;for(let e=0;e<a;e++){e>0&&t(n,`, `,3);let r=i[e];r.type===`RestElement`?(t(n,`...`,3),W(r.argument,n)):Ie(r,n)}t(n,`}`,3)},Ie=(e,n)=>{if(e.shorthand){let{value:i}=e;i.type===`AssignmentPattern`?(m(n),r(n,i.left.name,0,i.left),t(n,` = `,3),F(i.right,n,1,0)):(m(n),r(n,i.name,0,i))}else{let{key:r}=e;e.computed?(t(n,`[`,3),F(r,n,1,0),t(n,`]`,3)):U(r,n),t(n,`: `,3),G(e.value,n)}},G=(e,n)=>{e.type===`AssignmentPattern`?(W(e.left,n),t(n,` = `,3),F(e.right,n,1,0)):W(e,n)},Le=(e,n)=>{let{elements:i}=e,{length:a}=i,o=null;if(a>0){let e=i[a-1];e!=null&&e.type===`RestElement`&&(o=e,a--)}r(n,`[`,3,e);for(let e=0;e<a;e++){e!==0&&t(n,`, `,3);let r=i[e];r!=null&&G(r,n),e===a-1&&(r==null||o!==null)&&t(n,`,`,3)}o!==null&&(a>0&&t(n,` `,3),t(n,`...`,3),W(o.argument,n)),t(n,`]`,3)},Re=(e,i)=>{g(i),m(i),r(i,`import`,0,e),e.phase!=null&&(n(i,` `),t(i,e.phase,0));let{specifiers:a}=e,{length:o}=a;if(o===0){t(i,` `,3),b(i,e.source.value,e.source),K(e.attributes,i),t(i,`;
|
|
18
|
+
`,3);return}let s=!1;for(let e=0;e<o;e++){let n=a[e];switch(n.type){case`ImportDefaultSpecifier`:s?(t(i,` },`,3),s=!1):e===0?t(i,` `,3):t(i,`, `,3),m(i),r(i,n.local.name,0,n),e===o-1&&t(i,` `,3);break;case`ImportNamespaceSpecifier`:s?(t(i,` },`,3),s=!1):e===0?t(i,` `,3):t(i,`, `,3),r(i,`* as `,3,n),r(i,n.local.name,0,n.local),t(i,` `,3);break;default:{s?t(i,`, `,3):(e!==0&&t(i,`,`,3),s=!0,t(i,` { `,3));let a=q(n.imported,i),{local:o}=n;a!==o.name&&(t(i,` as `,3),r(i,o.name,0,o));break}}}t(i,s?` } from `:`from `,3),b(i,e.source.value,e.source),K(e.attributes,i),t(i,`;
|
|
19
|
+
`,3)},K=(e,n)=>{if(e==null)return;let{length:i}=e;if(i!==0){t(n,` with { `,3);for(let a=0;a<i;a++){a>0&&t(n,`, `,3);let i=e[a],{key:o}=i;o.type===`Identifier`?r(n,o.name,0,o):b(n,o.value,o),t(n,`: `,3),b(n,i.value.value,i.value)}t(n,` }`,3)}},q=(e,t)=>e.type===`Identifier`?(m(t),r(t,e.name,0,e),e.name):(b(t,e.value,e),e.value),ze=(e,n)=>{g(n),r(n,`export `,3,e);let{declaration:i}=e;if(i!=null){switch(i.type){case`VariableDeclaration`:X(i,n,0),t(n,`;
|
|
20
|
+
`,3);break;case`FunctionDeclaration`:C(i,n),t(n,`
|
|
21
|
+
`,3);break;case`ClassDeclaration`:D(i,n),t(n,`
|
|
22
|
+
`,3);break;default:throw Error(`Unknown export declaration type: ${i.type}`)}return}t(n,`{`,3);let{specifiers:a}=e,{length:o}=a;if(o>0){t(n,` `,3);for(let e=0;e<o;e++){e>0&&t(n,`, `,3);let r=a[e];q(r.local,n)!==(r.exported.type===`Identifier`?r.exported.name:r.exported.value)&&(t(n,` as `,3),q(r.exported,n))}t(n,` `,3)}t(n,`}`,3),e.source!=null&&(t(n,` from `,3),b(n,e.source.value,e.source),K(e.attributes,n)),t(n,`;
|
|
23
|
+
`,3)},Be=(e,n)=>{g(n),r(n,`export *`,3,e),e.exported!=null&&(t(n,` as `,3),q(e.exported,n)),t(n,` from `,3),b(n,e.source.value,e.source),K(e.attributes,n),t(n,`;
|
|
24
|
+
`,3)},Ve=(e,n)=>{g(n),r(n,`export default `,3,e);let{declaration:i}=e;switch(i.type){case`FunctionDeclaration`:C(i,n),t(n,`
|
|
25
|
+
`,3);break;case`ClassDeclaration`:D(i,n),t(n,`
|
|
26
|
+
`,3);break;default:n.last=6,F(i,n,1,0),t(n,`;
|
|
27
|
+
`,3)}},He=(e,r)=>{e.hashbang!=null&&(n(r,`#!`),n(r,e.hashbang.value),t(r,`
|
|
28
|
+
`,3)),J(e.body,r)},J=(e,r)=>{let{length:i}=e;if(i===0)return;let a=0,o=e[0];for(;o.type===`ExpressionStatement`;)if(o.directive!=null){if(Ue(o,r),++a>=i)return;o=e[a]}else{let e=u(o.expression);e.type===`Literal`&&typeof e.value==`string`&&(g(r),n(r,`(`),b(r,e.value,e),t(r,`);
|
|
29
|
+
`,3),a++);break}for(;a<i;a++)Y(e[a],r)},Ue=(e,r)=>{g(r);let{directive:a}=e,o=`"`,{length:s}=a;for(let e=0;e<s;e++){let t=a[e];if(t===`"`){o=`'`;break}if(t===`'`)break;t===`\\`&&e++}i(r,o,e),n(r,a),n(r,o),t(r,`;
|
|
30
|
+
`,3)},Y=(e,n)=>{switch(e.type){case`ExpressionStatement`:We(e,n);break;case`VariableDeclaration`:g(n),X(e,n,0),t(n,`;
|
|
31
|
+
`,3);break;case`BlockStatement`:g(n),Z(e,n),t(n,`
|
|
32
|
+
`,3);break;case`IfStatement`:g(n),Q(e,n);break;case`ReturnStatement`:Ke(e,n);break;case`FunctionDeclaration`:g(n),C(e,n),t(n,`
|
|
33
|
+
`,3);break;case`ForStatement`:Qe(e,n);break;case`WhileStatement`:Xe(e,n);break;case`DoWhileStatement`:Ze(e,n);break;case`SwitchStatement`:Je(e,n);break;case`BreakStatement`:g(n),m(n),r(n,`break`,0,e),e.label!=null&&(t(n,` `,3),r(n,e.label.name,0,e.label)),t(n,`;
|
|
34
|
+
`,3);break;case`ContinueStatement`:g(n),m(n),r(n,`continue`,0,e),e.label!=null&&(t(n,` `,3),r(n,e.label.name,0,e.label)),t(n,`;
|
|
35
|
+
`,3);break;case`TryStatement`:qe(e,n);break;case`ThrowStatement`:g(n),m(n),r(n,`throw `,3,e),F(e.argument,n,0,0),t(n,`;
|
|
36
|
+
`,3);break;case`ForInStatement`:$e(e,n);break;case`ForOfStatement`:et(e,n);break;case`ClassDeclaration`:g(n),D(e,n),t(n,`
|
|
37
|
+
`,3);break;case`LabeledStatement`:g(n),m(n),r(n,e.label.name,0,e.label),t(n,`:`,3),$(e.body,n);break;case`EmptyStatement`:g(n),t(n,`;
|
|
38
|
+
`,3);break;case`ImportDeclaration`:Re(e,n);break;case`ExportNamedDeclaration`:ze(e,n);break;case`ExportDefaultDeclaration`:Ve(e,n);break;case`ExportAllDeclaration`:Be(e,n);break;case`WithStatement`:g(n),m(n),r(n,`with(`,3,e),F(e.object,n,0,0),t(n,`)`,3),$(e.body,n);break;case`DebuggerStatement`:g(n),m(n),r(n,`debugger;
|
|
39
|
+
`,3,e);break;default:throw Error(`Unknown statement type: ${e.type}`)}},We=(e,n)=>{g(n),n.last=7,F(e.expression,n,0,0),t(n,`;
|
|
40
|
+
`,3)},X=(e,n,i)=>{m(n),r(n,e.kind,0,e);let{declarations:a}=e,{length:o}=a;o>0&&t(n,` `,3);for(let e=0;e<o;e++){e>0&&t(n,`, `,3);let r=a[e],{id:o}=r;H(o,n),r.init!=null&&(t(n,` = `,3),F(r.init,n,1,i))}},Z=(e,n)=>{let{body:i}=e,{length:a}=i;if(a===0){r(n,`{}`,3,e);return}r(n,`{
|
|
41
|
+
`,3,e),n.indentLevel++;for(let e=0;e<a;e++)Y(i[e],n);n.indentLevel--,g(n),t(n,`}`,3)},Q=(e,n)=>{m(n),r(n,`if (`,3,e),F(e.test,n,0,0);let{consequent:i,alternate:a}=e;i.type===`BlockStatement`?(t(n,`) `,3),Z(i,n),t(n,a==null?`
|
|
42
|
+
`:` `,3)):Ge(i)?(t(n,`) {
|
|
43
|
+
`,3),n.indentLevel++,Y(i,n),n.indentLevel--,g(n),t(n,`}`,3),t(n,a==null?`
|
|
44
|
+
`:` `,3)):(t(n,`)`,3),$(i,n),a!=null&&g(n)),a!=null&&(m(n),t(n,`else`,0),a.type===`BlockStatement`?(t(n,` `,3),Z(a,n),t(n,`
|
|
45
|
+
`,3)):a.type===`IfStatement`?(t(n,` `,3),Q(a,n)):$(a,n))},Ge=e=>{for(;;)switch(e.type){case`IfStatement`:if(e.alternate==null)return!0;e=e.alternate;break;case`ForStatement`:case`ForOfStatement`:case`ForInStatement`:case`WhileStatement`:case`WithStatement`:case`LabeledStatement`:e=e.body;break;default:return!1}},Ke=(e,n)=>{g(n),m(n);let{argument:i}=e;i==null?r(n,`return`,0,e):(r(n,`return `,3,e),F(i,n,0,0)),t(n,`;
|
|
46
|
+
`,3)},qe=(e,n)=>{g(n),m(n),r(n,`try `,3,e),Z(e.block,n);let{handler:i}=e;i!=null&&(t(n,` catch`,0),i.param!=null&&(t(n,` (`,3),H(i.param,n),t(n,`)`,3)),t(n,` `,3),Z(i.body,n)),e.finalizer!=null&&(t(n,` finally `,3),Z(e.finalizer,n)),t(n,`
|
|
47
|
+
`,3)},Je=(e,n)=>{g(n),m(n),r(n,`switch (`,3,e),F(e.discriminant,n,0,0),t(n,`) `,3);let{cases:i}=e,{length:a}=i;if(a===0){t(n,`{}
|
|
48
|
+
`,3);return}t(n,`{
|
|
49
|
+
`,3),n.indentLevel++;for(let e=0;e<a;e++)Ye(i[e],n);n.indentLevel--,g(n),t(n,`}
|
|
50
|
+
`,3)},Ye=(e,n)=>{g(n),e.test==null?r(n,`default`,0,e):(r(n,`case `,3,e),F(e.test,n,0,0)),t(n,`:`,3);let{consequent:i}=e,{length:a}=i;if(a===1){$(i[0],n);return}t(n,`
|
|
51
|
+
`,3),n.indentLevel++;for(let e=0;e<a;e++)Y(i[e],n);n.indentLevel--},Xe=(e,n)=>{g(n),m(n),r(n,`while (`,3,e),F(e.test,n,0,0),t(n,`)`,3),$(e.body,n)},Ze=(e,n)=>{g(n),m(n),r(n,`do`,0,e);let{body:i}=e;i.type===`BlockStatement`?(t(n,` `,3),Z(i,n),t(n,` `,3)):i.type===`EmptyStatement`?(g(n),t(n,`;
|
|
52
|
+
`,3)):(t(n,`
|
|
53
|
+
`,3),n.indentLevel++,Y(i,n),n.indentLevel--,g(n)),t(n,`while (`,3),F(e.test,n,0,0),t(n,`);
|
|
54
|
+
`,3)},Qe=(e,n)=>{g(n),m(n),r(n,`for (`,3,e);let{init:i}=e;i!=null&&(i.type===`VariableDeclaration`?X(i,n,1):F(i,n,0,1));let{test:a,update:o}=e;a==null?t(n,`;`,3):(t(n,`; `,3),F(a,n,0,0)),o==null?t(n,`;)`,3):(t(n,`; `,3),F(o,n,0,0),t(n,`)`,3)),$(e.body,n)},$e=(e,n)=>{g(n),m(n),r(n,`for (`,3,e);let{left:i}=e;i.type===`VariableDeclaration`?X(i,n,1):W(i,n),t(n,` in `,3),F(e.right,n,0,0),t(n,`)`,3),$(e.body,n)},et=(e,n)=>{g(n),m(n),r(n,`for`,0,e),e.await&&t(n,` await`,0),t(n,` (`,3);let{left:i}=e;if(i.type===`VariableDeclaration`)X(i,n,0);else{let r=u(i),a=tt(i)||!e.await&&r.type===`Identifier`&&r.name===`async`;a&&t(n,`(`,3),W(i,n),a&&t(n,`)`,3)}t(n,` of `,3),F(e.right,n,1,0),t(n,`)`,3),$(e.body,n)},tt=e=>{for(;;)switch(e.type){case`Identifier`:return e.name===`let`;case`MemberExpression`:if(e.computed){let t=u(e.object);if(t.type===`Identifier`&&t.name===`let`)return!1}e=e.object;break;case`ParenthesizedExpression`:e=e.expression;break;default:return!1}},$=(e,n)=>{e.type===`BlockStatement`?(t(n,` `,3),Z(e,n),t(n,`
|
|
55
|
+
`,3)):e.type===`EmptyStatement`?t(n,`;
|
|
56
|
+
`,3):(n.pendingIndentAsSpace=!0,Y(e,n))},nt=(t,n,r)=>(t.type===`Program`?He(t,n):Y(t,n),e(n,r.sourceMap),n.output);export{nt as printSync};
|
package/dist/print_ts.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
const e=(e,t,n)=>{e.last=n,e.output+=t},t=(e,t)=>{e.output+=t},n={__proto__:null,"**":17,"*":16,"/":16,"%":16,"+":15,"-":15,"<<":14,">>":14,">>>":14,"<":13,">":13,"<=":13,">=":13,instanceof:13,in:13,"==":12,"!=":12,"===":12,"!==":12,"&":11,"^":10,"|":9,"&&":8,"||":7,"??":6},r={__proto__:null,"**":` ** `,"*":` * `,"/":` / `,"%":` % `,"+":` + `,"-":` - `,"<<":` << `,">>":` >> `,">>>":` >>> `,"<":` < `,">":` > `,"<=":` <= `,">=":` >= `,instanceof:` instanceof `,in:` in `,"==":` == `,"!=":` != `,"===":` === `,"!==":` !== `,"&":` & `,"^":` ^ `,"|":` | `,"&&":` && `,"||":` || `,"??":` ?? `},i={__proto__:null,"=":` = `,"+=":` += `,"-=":` -= `,"*=":` *= `,"/=":` /= `,"%=":` %= `,"**=":` **= `,"<<=":` <<= `,">>=":` >>= `,">>>=":` >>>= `,"&=":` &= `,"^=":` ^= `,"|=":` |= `,"&&=":` &&= `,"||=":` ||= `,"??=":` ??= `},a=e=>{switch(e){case`+`:return 11;case`-`:return 13;case`!`:return 9;default:return 3}},o=e=>e===`++`?12:14,s=e=>{for(;e.type===`ParenthesizedExpression`;)e=e.expression;return e},c=(e,t,n,r)=>{let i={e,precedence:n,ctx:r,leftPrecedence:0,operator:e.operator,wrap:!1,rightPrecedence:0,parent:null};for(;;){l(i,t);let e=s(i.e.left);if(e.type===`BinaryExpression`||e.type===`LogicalExpression`){if(e.type===`BinaryExpression`&&e.left.type===`PrivateIdentifier`){Ke(e,t,0),u(i,t);break}i={e,precedence:i.leftPrecedence,ctx:i.ctx,leftPrecedence:0,operator:i.operator,wrap:!1,rightPrecedence:0,parent:i}}else{U(i.e.left,t,i.leftPrecedence,i.ctx),u(i,t);break}}for(;(i=i.parent)!==null;)u(i,t)},l=(t,r)=>{let{e:i}=t,a=i.operator,o=n[a],c=t.precedence>=o&&(!ee(t.operator)||t.precedence!==n[t.operator]);t.operator=a,t.wrap=c||a===`in`&&!!(t.ctx&1),t.wrap&&(e(r,`(`,3),t.ctx&=-2);let l=o-1;if(t.leftPrecedence=l,t.rightPrecedence=l,o===17?t.leftPrecedence=o:t.rightPrecedence=o,a===`??`){let e=s(i.left);e.type===`LogicalExpression`&&e.operator!==`??`&&(t.leftPrecedence=18);let n=s(i.right);n.type===`LogicalExpression`&&n.operator!==`??`&&(t.rightPrecedence=18)}else if(a===`**`){let e=s(i.left);(e.type===`UnaryExpression`||e.type===`AwaitExpression`||e.type===`TSTypeAssertion`||e.type===`Literal`&&(typeof e.value==`number`||e.bigint!=null))&&(t.leftPrecedence=21)}},ee=e=>e===`&&`||e===`||`||e===`??`,u=(t,n)=>{e(n,r[t.operator],3),U(t.e.right,n,t.rightPrecedence,t.ctx),t.wrap&&e(n,`)`,3)},d=t=>{t.last<=2&&e(t,` `,3)},f=(e,t)=>{let n=e.last;n>=10&&te(e,n,t)},te=(t,n,r)=>{(n===11&&(r===11||r===12)||n===13&&(r===13||r===14)||n===10&&r===14)&&e(t,` `,3)},p=t=>{if(t.pendingIndentAsSpace){e(t,` `,3),t.pendingIndentAsSpace=!1;return}let n=t.indentLevel;if(n>0){let{indents:r}=t;e(t,n<r.length?r[n]:ne(t,n),3)}},ne=(e,t)=>{let{indents:n,indentString:r}=e,{length:i}=n,a=n[i-1];for(;i<=t;i++)a+=r,a.charCodeAt(0),n.push(a);return a},m=(t,n,r)=>{Number.isInteger(n)?n<1e3?e(t,String(n),1):re(t,n,r):ie(t,n,r)},re=(n,r,i)=>{let a=String(r);if(r>=1e21){if(oe(n,r,a.length-1,i))return;ae(n,a,a.indexOf(`e`),i);return}let{length:o}=a;if(!oe(n,r,o,i)){if(a.charCodeAt(o-1)===48){let r=1;for(;a.charCodeAt(o-1-r)===48;)r++;let i=String(r);if(i.length+1<r){t(n,a.slice(0,o-r)),t(n,`e`),e(n,i,0);return}}e(n,a,1)}},ie=(n,r,i)=>{let a=String(r);if(a.charCodeAt(0)===48){if(a.charCodeAt(2)===48){let r=3;for(;a.charCodeAt(r)===48;)r++;let i=String(a.length-2);if(i.length+2<r-1){t(n,a.slice(r)),t(n,`e-`),e(n,i,0);return}}e(n,a.slice(1),0);return}let o=a.indexOf(`e`);if(o===-1){e(n,a,0);return}ae(n,a,o,i)},ae=(n,r,i,a)=>{let o=r.charCodeAt(i+1)===43?r.slice(i+2):r.slice(i+1);if(i>1){let a=String(Number(o)-(i-2));if(a.length<=o.length){t(n,r[0]),t(n,r.slice(2,i)),t(n,`e`),e(n,a,0);return}}t(n,r.slice(0,i+1)),e(n,o,0)},oe=(n,r,i,a)=>{if(i<13)return!1;let o=BigInt(r).toString(16);return o.length+2>=i?!1:(t(n,`0x`),e(n,o,0),!0)},se=/[\0\x07\b\v\f\n\r\x1B\\"<\u2028\u2029\xA0\uD800-\uDFFF]/,h=(n,r,i)=>{t(n,`"`),se.test(r)?ce(n,r):t(n,r),e(n,`"`,3)},ce=(e,n)=>{let r=0,{length:i}=n;for(let a=0;a<i;a++){let o=null,s=n.charCodeAt(a);switch(s){case 0:if(a+1<i){let e=n.charCodeAt(a+1);if(e>=48&&e<=57){o=`\\x00`;break}}o=`\\0`;break;case 7:o=`\\x07`;break;case 8:o=`\\b`;break;case 11:o=`\\v`;break;case 12:o=`\\f`;break;case 10:o=`\\n`;break;case 13:o=`\\r`;break;case 27:o=`\\x1B`;break;case 92:o=`\\\\`;break;case 34:o=`\\"`;break;case 60:if(/^<\/script/i.test(n.slice(a,a+8))){o=`<\\`;break}continue;case 8232:o=`\\u2028`;break;case 8233:o=`\\u2029`;break;case 160:o=`\\xA0`;break;default:if(s>=55296&&s<=57343){if(s<=56319&&a+1<i){let e=n.charCodeAt(a+1);if(e>=56320&&e<=57343){a++;continue}}o=`\\u`+s.toString(16);break}continue}t(e,n.slice(r,a)),t(e,o),r=a+1}t(e,n.slice(r))},le=e=>e.includes(`</`)?e.replace(/<\/(script)/gi,`<\\/$1`):e,g=(t,n,r,i)=>{let{value:a}=t;switch(typeof a){case`string`:h(n,a,t);break;case`number`:ue(t,n,r,i);break;case`boolean`:d(n),e(n,a?`true`:`false`,0);break;default:t.regex==null?t.bigint==null?(d(n),e(n,`null`,0)):fe(t,n,r):de(t,n)}},ue=(n,r,i,a)=>{let{value:o}=n;if(a&4&&n.raw!=null){let{raw:t}=n;e(r,t,t[t.length-1]===`.`?3:0);return}if(o>0&&o<1/0)d(r),m(r,o,n);else if(Number.isNaN(o))d(r),e(r,`NaN`,0);else if(Number.isFinite(o))Object.is(o,0)?(d(r),e(r,`0`,1)):i>=18?(t(r,`(-`),m(r,-o,n),e(r,`)`,3)):(f(r,13),t(r,`-`),m(r,-o,n));else{let n=o<0,a=n&&i>=18;a&&e(r,`(`,3),n?(f(r,13),t(r,`-`)):d(r),e(r,`Infinity`,0),a&&e(r,`)`,3)}},de=(n,r)=>{t(r,`/`),t(r,n.regex.pattern);let{flags:i}=n.regex;i===``?e(r,`/`,2):(t(r,`/`),e(r,i,0))},fe=(n,r,i)=>{d(r);let a=n.bigint;a.startsWith(`-`)&&i>=18?(t(r,`(`),t(r,a),e(r,`n)`,3)):(t(r,a),e(r,`n`,0))},pe=(t,n,r,i)=>{let a=r>=13;a&&e(n,`(`,3),U(t.expression,n,17,i),e(n,t.type===`TSAsExpression`?` as `:` satisfies `,3),_(t.typeAnnotation,n),a&&e(n,`)`,3)},_=(n,r)=>{switch(n.type){case`TSTypeReference`:v(n.typeName,r),y(n.typeArguments,r);break;case`TSStringKeyword`:d(r),e(r,`string`,0);break;case`TSNumberKeyword`:d(r),e(r,`number`,0);break;case`TSBooleanKeyword`:d(r),e(r,`boolean`,0);break;case`TSAnyKeyword`:d(r),e(r,`any`,0);break;case`TSVoidKeyword`:d(r),e(r,`void`,0);break;case`TSUnknownKeyword`:d(r),e(r,`unknown`,0);break;case`TSNeverKeyword`:d(r),e(r,`never`,0);break;case`TSUndefinedKeyword`:d(r),e(r,`undefined`,0);break;case`TSNullKeyword`:d(r),e(r,`null`,0);break;case`TSObjectKeyword`:d(r),e(r,`object`,0);break;case`TSSymbolKeyword`:d(r),e(r,`symbol`,0);break;case`TSBigIntKeyword`:d(r),e(r,`bigint`,0);break;case`TSIntrinsicKeyword`:d(r),e(r,`intrinsic`,0);break;case`TSThisType`:d(r),e(r,`this`,0);break;case`TSLiteralType`:me(n.literal,r);break;case`TSUnionType`:he(n,r);break;case`TSIntersectionType`:ge(n,r);break;case`TSArrayType`:{let t=x(n.elementType);t&&e(r,`(`,3),_(n.elementType,r),t&&e(r,`)`,3),e(r,`[]`,3);break}case`TSTypeLiteral`:ve(n,r);break;case`TSFunctionType`:Se(n,r);break;case`TSConstructorType`:n.abstract&&e(r,`abstract `,3),e(r,`new `,3),w(n.typeParameters,r),L(n.params,r),_(C(n.returnType),r);break;case`TSTupleType`:{e(r,`[`,3);let{elementTypes:t}=n,{length:i}=t;for(let n=0;n<i;n++)n>0&&e(r,`, `,3),E(t[n],r);e(r,`]`,3);break}case`TSConditionalType`:Ce(n,r);break;case`TSInferType`:e(r,`infer `,3),T(n.typeParameter,r);break;case`TSIndexedAccessType`:{let t=x(n.objectType);t&&e(r,`(`,3),_(n.objectType,r),t&&e(r,`)`,3),e(r,`[`,3),_(n.indexType,r),e(r,`]`,3);break}case`TSMappedType`:we(n,r);break;case`TSTypeOperator`:Te(n,r);break;case`TSTypePredicate`:Ee(n,r);break;case`TSTypeQuery`:e(r,`typeof `,3),De(n.exprName,r),y(n.typeArguments,r);break;case`TSImportType`:D(n,r);break;case`TSTemplateLiteralType`:{t(r,"`");let{quasis:i,types:a}=n,{length:o}=i;for(let n=0;n<o;n++)n!==0&&(e(r,"${",3),_(a[n-1],r),t(r,`}`)),t(r,i[n].value.raw);e(r,"`",3);break}case`TSParenthesizedType`:e(r,`(`,3),_(n.typeAnnotation,r),e(r,`)`,3);break;case`TSNamedTupleMember`:E(n,r);break;case`TSQualifiedName`:v(n,r);break;case`TSOptionalType`:case`TSRestType`:E(n,r);break;case`TSJSDocUnknownType`:d(r),e(r,`unknown`,0);break;case`TSJSDocNullableType`:n.postfix?(_(C(n.typeAnnotation),r),e(r,`?`,5)):(r.last===5&&e(r,` `,3),e(r,`?`,5),_(C(n.typeAnnotation),r));break;case`TSJSDocNonNullableType`:n.postfix?(_(C(n.typeAnnotation),r),e(r,`!`,9)):(e(r,`!`,9),_(C(n.typeAnnotation),r));break;default:throw Error(`Unknown type node: ${n.type}`)}},v=(t,n)=>{t.type===`TSQualifiedName`?(v(t.left,n),e(n,`.`,3),e(n,t.right.name,0)):t.type===`ThisExpression`?(d(n),e(n,`this`,0)):(d(n),e(n,t.name,0))},y=(t,n)=>{if(t==null)return;e(n,`<`,4);let{params:r}=t,{length:i}=r;for(let t=0;t<i;t++)t>0&&e(n,`, `,3),_(r[t],n);e(n,`>`,3)},me=(e,t)=>{e.type===`Literal`?g(e,t,0,4):U(e,t,+(e.type===`UnaryExpression`),4)},he=(t,n)=>{let{types:r}=t,{length:i}=r;for(let t=0;t<i;t++){t>0&&e(n,` | `,3);let i=b(r[t]);i&&e(n,`(`,3),_(r[t],n),i&&e(n,`)`,3)}},b=e=>{switch(e.type){case`TSUnionType`:return e.types.length>1;case`TSFunctionType`:case`TSConstructorType`:case`TSConditionalType`:case`TSInferType`:return!0;default:return!1}},ge=(t,n)=>{let{types:r}=t,{length:i}=r;for(let t=0;t<i;t++){t>0&&e(n,` & `,3);let i=_e(r[t]);i&&e(n,`(`,3),_(r[t],n),i&&e(n,`)`,3)}},_e=e=>e.type===`TSIntersectionType`?e.types.length>1:b(e),x=e=>{switch(e.type){case`TSUnionType`:case`TSIntersectionType`:case`TSFunctionType`:case`TSConstructorType`:case`TSConditionalType`:case`TSInferType`:case`TSTypeOperator`:return!0;default:return!1}},ve=(t,n)=>{let{members:r}=t,{length:i}=r;if(i===0){e(n,`{}`,3);return}e(n,`{
|
|
2
|
+
`,3),n.indentLevel++;for(let t=0;t<i;t++)p(n),ye(r[t],n,4),e(n,`;
|
|
3
|
+
`,3);n.indentLevel--,p(n),e(n,`}`,3)},ye=(t,n,r)=>{switch(t.type){case`TSPropertySignature`:t.readonly&&e(n,`readonly `,3),t.computed?(e(n,`[`,3),U(t.key,n,1,r),e(n,`]`,3)):be(t.key,n,r),t.optional&&e(n,`?`,5),t.typeAnnotation!=null&&S(t.typeAnnotation,n);break;case`TSIndexSignature`:xe(t,n);break;case`TSMethodSignature`:t.kind===`get`?e(n,`get `,3):t.kind===`set`&&e(n,`set `,3),t.computed?(e(n,`[`,3),U(t.key,n,1,r),e(n,`]`,3)):be(t.key,n,r),t.optional&&e(n,`?`,5),w(t.typeParameters,n),F(t.params,n),t.returnType!=null&&S(t.returnType,n);break;case`TSCallSignatureDeclaration`:w(t.typeParameters,n),F(t.params,n),t.returnType!=null&&S(t.returnType,n);break;case`TSConstructSignatureDeclaration`:e(n,`new `,3),w(t.typeParameters,n),F(t.params,n),t.returnType!=null&&S(t.returnType,n);break;default:throw Error(`Unknown signature type: ${t.type}`)}},be=(t,n,r)=>{switch(t.type){case`Identifier`:d(n),e(n,t.name,0);break;case`PrivateIdentifier`:e(n,t.name,0);break;case`Literal`:typeof t.value==`string`?h(n,t.value,t):g(t,n,1,r);break;default:U(t,n,1,r)}},S=(t,n)=>{e(n,`: `,3),_(C(t),n)},C=e=>e.type===`TSTypeAnnotation`?e.typeAnnotation:e,xe=(t,n)=>{t.static&&e(n,`static `,3),t.readonly&&e(n,`readonly `,3),e(n,`[`,3);let r=t.parameters[0];e(n,r.name,0),e(n,`: `,3),_(C(r.typeAnnotation),n),e(n,`]: `,3),_(C(t.typeAnnotation),n)},w=(t,n)=>{if(t==null)return;let{params:r}=t,{length:i}=r,a=i>=2;if(e(n,`<`,4),a){n.indentLevel++;for(let t=0;t<i;t++)e(n,t===0?`
|
|
4
|
+
`:`,
|
|
5
|
+
`,3),p(n),T(r[t],n);e(n,`
|
|
6
|
+
`,3),n.indentLevel--,p(n)}else{for(let t=0;t<i;t++)t>0&&e(n,`, `,3),T(r[t],n);n.isJsx&&e(n,`,`,3)}e(n,`>`,3)},T=(n,r)=>{n.const&&t(r,`const `),n.in&&t(r,`in `),n.out&&t(r,`out `),e(r,n.name.name,0),n.constraint!=null&&(e(r,` extends `,3),_(n.constraint,r)),n.default!=null&&(e(r,` = `,3),_(n.default,r))},Se=(e,t)=>{w(e.typeParameters,t),L(e.params,t),_(C(e.returnType),t)},E=(t,n)=>{switch(t.type){case`TSOptionalType`:{let r=x(t.typeAnnotation);r&&e(n,`(`,3),_(t.typeAnnotation,n),r&&e(n,`)`,3),e(n,`?`,5);break}case`TSRestType`:e(n,`...`,3),_(t.typeAnnotation,n);break;case`TSNamedTupleMember`:e(n,t.label.name,0),t.optional&&e(n,`?`,5),e(n,`: `,3),_(t.elementType,n);break;default:_(t,n)}},Ce=(t,n)=>{let{checkType:r,extendsType:i}=t,a=r.type===`TSFunctionType`||r.type===`TSConstructorType`||r.type===`TSConditionalType`;a&&e(n,`(`,3),_(r,n),a&&e(n,`)`,3),e(n,` extends `,3);let o=i.type===`TSConditionalType`;o&&e(n,`(`,3),_(i,n),o&&e(n,`)`,3),e(n,` ? `,3),_(t.trueType,n),e(n,` : `,3),_(t.falseType,n)},we=(n,r)=>{t(r,`{ `);let{readonly:i}=n;i===!0?t(r,`readonly `):i===`+`?t(r,`+readonly `):i===`-`&&t(r,`-readonly `),t(r,`[`),n.key==null?(t(r,n.typeParameter.name.name),e(r,` in `,3),_(n.typeParameter.constraint,r)):(t(r,n.key.name),e(r,` in `,3),_(n.constraint,r)),n.nameType!=null&&(e(r,` as `,3),_(n.nameType,r)),t(r,`]`);let{optional:a}=n;a===!0?t(r,`?`):a===`+`?t(r,`+?`):a===`-`&&t(r,`-?`),n.typeAnnotation!=null&&(e(r,`: `,3),_(C(n.typeAnnotation),r)),e(r,` }`,3)},Te=(t,n)=>{e(n,t.operator,0),e(n,` `,3);let r=C(t.typeAnnotation),i=r.type,a=i===`TSUnionType`||i===`TSIntersectionType`||i===`TSFunctionType`||i===`TSConstructorType`||i===`TSConditionalType`;a&&e(n,`(`,3),_(r,n),a&&e(n,`)`,3)},Ee=(t,n)=>{t.asserts&&e(n,`asserts `,3);let{parameterName:r}=t;r.type===`TSThisType`?e(n,`this`,0):(d(n),e(n,r.name,0)),t.typeAnnotation!=null&&(e(n,` is `,3),_(C(t.typeAnnotation),n))},De=(e,t)=>{e.type===`TSImportType`?D(e,t):v(e,t)},D=(t,n)=>{e(n,`import(`,3);let r=t.source==null?t.argument:t.source;r.type===`Literal`?h(n,r.value,r):r.type===`TSLiteralType`?h(n,r.literal.value,r.literal):_(r,n),t.options!=null&&(e(n,`, `,3),U(t.options,n,0,4)),e(n,`)`,3),t.qualifier!=null&&(e(n,`.`,3),O(t.qualifier,n)),y(t.typeArguments,n)},O=(t,n)=>{t.type===`TSQualifiedName`?(O(t.left,n),e(n,`.`,3),e(n,t.right.name,0)):e(n,t.name,0)},Oe=(t,n,r,i)=>{let a=r>=18;a&&e(n,`(`,3),n.last===4&&e(n,` `,3),e(n,`<`,4),t.typeAnnotation.type===`TSFunctionType`&&e(n,` `,3),_(t.typeAnnotation,n),e(n,`>`,3),U(t.expression,n,17,i),a&&e(n,`)`,3)},k=(t,n)=>{t.declare&&e(n,`declare `,3);let r=t.kind==null?t.global?`global`:`module`:t.kind;if(e(n,r,0),r!==`global`){e(n,` `,3);let{id:r}=t;r.type===`Literal`?h(n,r.value,r):v(r,n)}let{body:i}=t;if(i==null){e(n,`;`,3);return}e(n,` `,3),ke(i,n)},ke=(t,n)=>{let r=t.body;if(r.length===0){e(n,`{}`,3);return}e(n,`{
|
|
7
|
+
`,3),n.indentLevel++,Y(r,n),n.indentLevel--,p(n),e(n,`}`,3)},A=(t,n)=>{d(n),t.declare&&e(n,`declare `,3),e(n,`interface `,3),e(n,t.id.name,0),w(t.typeParameters,n);let r=t.extends;if(r!=null&&r.length>0){e(n,` extends `,3);let{length:t}=r;for(let i=0;i<t;i++){i>0&&e(n,`, `,3);let t=r[i];U(t.expression,n,21,0),y(t.typeArguments,n)}}e(n,` `,3);let i=t.body.body,{length:a}=i;if(a===0){e(n,`{}`,3);return}e(n,`{
|
|
8
|
+
`,3),n.indentLevel++;for(let t=0;t<a;t++)p(n),ye(i[t],n,0),e(n,`;
|
|
9
|
+
`,3);n.indentLevel--,p(n),e(n,`}`,3)},j=(t,n)=>{t.declare&&e(n,`declare `,3),e(n,`type `,3),e(n,t.id.name,0),w(t.typeParameters,n),e(n,` = `,3);let r=Ae(t.typeAnnotation);r&&e(n,`(`,3),_(t.typeAnnotation,n),r&&e(n,`)`,3)},Ae=e=>{for(;;)switch(e.type){case`TSTypeReference`:return e.typeArguments==null&&e.typeName.type===`Identifier`&&e.typeName.name===`intrinsic`;case`TSArrayType`:e=e.elementType;break;case`TSIndexedAccessType`:e=e.objectType;break;case`TSUnionType`:case`TSIntersectionType`:if(e.types.length===0)return!1;e=e.types[0];break;case`TSConditionalType`:e=e.checkType;break;default:return!1}},M=(t,n)=>{d(n),t.declare&&e(n,`declare `,3),t.const&&e(n,`const `,3),e(n,`enum `,3),e(n,t.id.name,0),e(n,` `,3);let r=t.body==null?t.members:t.body.members,{length:i}=r;if(i===0){e(n,`{}`,3);return}e(n,`{
|
|
10
|
+
`,3),n.indentLevel++;let a=i-1;for(let t=0;t<i;t++)p(n),je(r[t],n),e(n,t===a?`
|
|
11
|
+
`:`,
|
|
12
|
+
`,3);n.indentLevel--,p(n),e(n,`}`,3)},je=(n,r)=>{let{id:i}=n;i.type===`Identifier`?(d(r),e(r,i.name,0)):i.type===`Literal`?h(r,i.value,i):(e(r,`[`,3),i.type===`TemplateLiteral`?(t(r,"`"),t(r,i.quasis[0].value.raw),e(r,"`",3)):U(i,r,1,0),e(r,`]`,3)),n.initializer!=null&&(e(r,` = `,3),U(n.initializer,r,0,0))},N=(t,n)=>{e(n,`import `,3),t.importKind===`type`&&e(n,`type `,3),e(n,t.id.name,0),e(n,` = `,3);let r=t.moduleReference;r.type===`TSExternalModuleReference`?(e(n,`require(`,3),h(n,r.expression.value,r.expression),e(n,`)`,3)):v(r,n)},P=(t,n)=>{let r=!1;t.type===`FunctionExpression`&&(r=(n.last|1)==7),r&&e(n,`(`,3),d(n),t.declare&&e(n,`declare `,3),e(n,t.async?`async function`:`function`,0),t.generator&&e(n,`* `,3),t.id!=null&&(d(n),e(n,t.id.name,0)),w(t.typeParameters,n),F(t.params,n),t.returnType!=null&&S(t.returnType,n),t.body==null?e(n,`;`,3):(e(n,` `,3),I(t.body,n)),r&&e(n,`)`,3)},F=(t,n)=>{if(t.length===0){e(n,`()`,3);return}e(n,`(`,3),Me(t,n),e(n,`)`,3)},Me=(n,r)=>{let{length:i}=n;for(let a=0;a<i;a++){a>0&&e(r,`, `,3);let i=n[a],{decorators:o}=i;o!=null&&o.length>0&&z(o,r),i.type===`TSParameterProperty`?(i.accessibility!=null&&(d(r),t(r,i.accessibility),e(r,` `,3)),i.override&&(d(r),e(r,`override `,3)),i.readonly&&(d(r),e(r,`readonly `,3)),W(i.parameter,r)):W(i,r)}},I=(t,n)=>{let r=t.body;if(r.length===0){e(n,`{}`,3);return}e(n,`{
|
|
13
|
+
`,3),n.indentLevel++,Y(r,n),n.indentLevel--,p(n),e(n,`}`,3)},L=(t,n)=>{if(t.length===0){e(n,`() => `,3);return}e(n,`(`,3),Me(t,n),e(n,`) => `,3)},R=(t,n)=>{let r=!1;t.type===`ClassExpression`&&(r=(n.last|1)==7),r&&e(n,`(`,3);let{decorators:i}=t;i!=null&&i.length>0&&z(i,n),d(n);let a=t.declare,o=t.abstract;a&&e(n,`declare `,3),o&&e(n,`abstract `,3),e(n,`class`,0),t.id!=null&&(e(n,` `,3),e(n,t.id.name,0)),w(t.typeParameters,n),t.superClass!=null&&(e(n,` extends `,3),U(t.superClass,n,19,0),y(t.superTypeArguments,n));let{implements:s}=t;if(s!=null&&s.length>0){e(n,` implements `,3);let{length:t}=s;for(let r=0;r<t;r++){r>0&&e(n,`, `,3);let t=s[r];U(t.expression,n,21,0),y(t.typeArguments,n)}}e(n,` `,3),Pe(t.body,n),r&&e(n,`)`,3)},z=(t,n)=>{let{length:r}=t;for(let i=0;i<r;i++){let r=t[i];e(n,`@`,3);let{expression:a}=r,o=Ne(a);o&&e(n,`(`,3),U(a,n,0,0),o&&e(n,`)`,3),e(n,` `,3)}},Ne=e=>{for(;;)switch(e.type){case`Identifier`:return!1;case`MemberExpression`:return e.computed;case`CallExpression`:e=e.callee;break;default:return!0}},Pe=(t,n)=>{let{body:r}=t,{length:i}=r;if(i===0){e(n,`{}`,3);return}e(n,`{
|
|
14
|
+
`,3),n.indentLevel++;for(let t=0;t<i;t++){p(n);let i=r[t];switch(i.type){case`MethodDefinition`:case`TSAbstractMethodDefinition`:Fe(i,n),e(n,`
|
|
15
|
+
`,3);break;case`PropertyDefinition`:case`TSAbstractPropertyDefinition`:Ie(i,n),e(n,`;
|
|
16
|
+
`,3);break;case`StaticBlock`:Le(i,n),e(n,`
|
|
17
|
+
`,3);break;case`AccessorProperty`:case`TSAbstractAccessorProperty`:Re(i,n),e(n,`;
|
|
18
|
+
`,3);break;case`TSIndexSignature`:xe(i,n),e(n,`;
|
|
19
|
+
`,3);break;default:throw Error(`Unknown class element type: ${i.type}`)}}n.indentLevel--,p(n),e(n,`}`,3)},Fe=(n,r)=>{let{decorators:i}=n;i!=null&&i.length>0&&z(i,r),n.accessibility!=null&&(d(r),t(r,n.accessibility),e(r,` `,3)),(n.type===`TSAbstractMethodDefinition`||n.abstract)&&(d(r),e(r,`abstract `,3)),n.static&&(d(r),e(r,`static `,3)),n.override&&(d(r),e(r,`override `,3));let{kind:a}=n;a===`get`?(d(r),e(r,`get `,3)):a===`set`&&(d(r),e(r,`set `,3));let o=n.value;o.async&&(d(r),e(r,`async `,3)),o.generator&&e(r,`*`,3),n.computed?(e(r,`[`,3),U(n.key,r,1,0),e(r,`]`,3)):G(n.key,r),n.optional&&e(r,`?`,5),w(o.typeParameters,r),F(o.params,r),o.returnType!=null&&S(o.returnType,r),o.body==null?e(r,`;`,3):(e(r,` `,3),I(o.body,r))},Ie=(n,r)=>{let{decorators:i}=n;i!=null&&i.length>0&&z(i,r),n.declare&&(d(r),e(r,`declare `,3)),n.accessibility!=null&&(d(r),t(r,n.accessibility),e(r,` `,3)),(n.type===`TSAbstractPropertyDefinition`||n.abstract)&&(d(r),e(r,`abstract `,3)),n.static&&(d(r),e(r,`static `,3)),n.override&&(d(r),e(r,`override `,3)),n.readonly&&(d(r),e(r,`readonly `,3)),n.computed?(e(r,`[`,3),U(n.key,r,1,0),e(r,`]`,3)):G(n.key,r),n.optional&&e(r,`?`,5),n.definite&&e(r,`!`,9),n.typeAnnotation!=null&&S(n.typeAnnotation,r),n.value!=null&&(e(r,` = `,3),U(n.value,r,1,0))},Le=(t,n)=>{d(n),e(n,`static `,3);let{body:r}=t,{length:i}=r;if(i===0){e(n,`{}`,3);return}e(n,`{
|
|
20
|
+
`,3),n.indentLevel++;for(let e=0;e<i;e++)X(r[e],n);n.indentLevel--,p(n),e(n,`}`,3)},Re=(n,r)=>{let{decorators:i}=n;i!=null&&i.length>0&&z(i,r),(n.type===`TSAbstractAccessorProperty`||n.abstract)&&(d(r),e(r,`abstract `,3)),n.accessibility!=null&&(d(r),t(r,n.accessibility),e(r,` `,3)),n.static&&(d(r),e(r,`static `,3)),n.override&&(d(r),e(r,`override `,3)),d(r),e(r,`accessor`,0),n.computed?(e(r,` [`,3),U(n.key,r,1,0),e(r,`]`,3)):(e(r,` `,3),G(n.key,r)),n.definite&&e(r,`!`,9),n.typeAnnotation!=null&&S(n.typeAnnotation,r),n.value!=null&&(e(r,` = `,3),U(n.value,r,1,0))},B=(n,r)=>{let{openingElement:i}=n;t(r,`<`),V(i.name,r),y(i.typeArguments,r);let{attributes:a}=i,{length:o}=a;for(let n=0;n<o;n++){t(r,` `);let i=a[n];i.type===`JSXSpreadAttribute`?(e(r,`{...`,3),U(i.argument,r,1,0),t(r,`}`)):ze(i,r)}let{closingElement:s}=n;if(s==null){e(r,` />`,3);return}t(r,`>`);let{children:c}=n,l=c.length;for(let e=0;e<l;e++)He(c[e],r);t(r,`</`),V(s.name,r),e(r,`>`,3)},V=(e,n)=>{switch(e.type){case`JSXIdentifier`:t(n,e.name);break;case`JSXMemberExpression`:V(e.object,n),t(n,`.`),V(e.property,n);break;case`JSXNamespacedName`:t(n,e.namespace.name),t(n,`:`),t(n,e.name.name);break;case`ThisExpression`:t(n,`this`);break;default:throw Error(`Unknown JSX name type: ${e.type}`)}},ze=(e,n)=>{let{name:r}=e;r.type===`JSXNamespacedName`?(t(n,r.namespace.name),t(n,`:`),t(n,r.name.name)):t(n,r.name);let{value:i}=e;i!=null&&(t(n,`=`),Be(i,n))},Be=(e,n)=>{switch(e.type){case`Literal`:{let{raw:r}=e,i=r==null?String(e.value):r.slice(1,-1),a=i.includes(`"`)?`'`:`"`;t(n,a),t(n,i),t(n,a);break}case`JSXExpressionContainer`:Ve(e,n);break;case`JSXElement`:B(e,n);break;case`JSXFragment`:H(e,n);break;default:throw Error(`Unknown JSX attribute value type: ${e.type}`)}},Ve=(n,r)=>{e(r,`{`,3),n.expression.type!==`JSXEmptyExpression`&&U(n.expression,r,0,0),t(r,`}`)},H=(n,r)=>{t(r,`<>`);let{children:i}=n,{length:a}=i;for(let e=0;e<a;e++)He(i[e],r);e(r,`</>`,3)},He=(n,r)=>{switch(n.type){case`JSXText`:t(r,n.raw==null?n.value:n.raw);break;case`JSXExpressionContainer`:Ve(n,r);break;case`JSXElement`:B(n,r);break;case`JSXFragment`:H(n,r);break;case`JSXSpreadChild`:e(r,`{...`,3),U(n.expression,r,0,0),t(r,`}`);break;default:throw Error(`Unknown JSX child type: ${n.type}`)}},U=(n,r,i,a)=>{switch(n.type){case`Identifier`:d(r),e(r,n.name,0);break;case`MemberExpression`:Ue(n,r,a);break;case`CallExpression`:We(n,r,i,a);break;case`Literal`:g(n,r,i,a);break;case`BinaryExpression`:n.left.type===`PrivateIdentifier`?Ke(n,r,i):c(n,r,i,a);break;case`LogicalExpression`:c(n,r,i,a);break;case`ObjectExpression`:qe(n,r);break;case`ArrayExpression`:Ye(n,r);break;case`AssignmentExpression`:Xe(n,r,i,a);break;case`UpdateExpression`:Ze(n,r,i,a);break;case`UnaryExpression`:Qe(n,r,i,a);break;case`ConditionalExpression`:$e(n,r,i,a);break;case`SequenceExpression`:et(n,r,i,a);break;case`ArrowFunctionExpression`:tt(n,r,i,a);break;case`FunctionExpression`:P(n,r);break;case`ThisExpression`:d(r),e(r,`this`,0);break;case`Super`:d(r),e(r,`super`,0);break;case`NewExpression`:nt(n,r,i);break;case`TemplateLiteral`:rt(n,r);break;case`TaggedTemplateExpression`:U(n.tag,r,19,a&2),y(n.typeArguments,r),rt(n.quasi,r);break;case`ClassExpression`:R(n,r);break;case`AwaitExpression`:at(n,r,i,a);break;case`YieldExpression`:ot(n,r,i);break;case`ImportExpression`:st(n,r,i,a);break;case`MetaProperty`:d(r),t(r,n.meta.name),t(r,`.`),e(r,n.property.name,0);break;case`ChainExpression`:ct(n,r,i,a);break;case`ParenthesizedExpression`:{let{expression:t}=n,o=s(t);o.type===`FunctionExpression`||o.type===`ArrowFunctionExpression`?(e(r,`(`,3),U(o,r,0,0),e(r,`)`,3)):U(t,r,i,a);break}case`JSXElement`:B(n,r);break;case`JSXFragment`:H(n,r);break;case`TSAsExpression`:case`TSSatisfiesExpression`:pe(n,r,i,a);break;case`TSNonNullExpression`:U(n.expression,r,19,a),e(r,`!`,9);break;case`TSInstantiationExpression`:U(n.expression,r,18,a),y(n.typeArguments,r);break;case`TSTypeAssertion`:Oe(n,r,i,a);break;default:throw Error(`Unknown expression type: ${n.type}`)}},Ue=(n,r,i)=>{let{object:a}=n;if(n.computed){let t=s(a),o=t.type===`Identifier`&&t.name===`let`;o&&e(r,`(`,3),U(a,r,19,i&2),o&&e(r,`)`,3),n.optional&&e(r,`?.`,3),e(r,`[`,3),U(n.property,r,0,0),e(r,`]`,3)}else{U(a,r,19,i&2),n.optional?e(r,`?`,5):r.last===1&&e(r,` `,3),e(r,`.`,3);let{property:o}=n;o.type===`PrivateIdentifier`&&t(r,`#`),e(r,o.name,0)}},We=(n,r,i,a)=>{let o=i>=20||!!(a&2);o&&(t(r,`(`),(r.last|1)!=7&&(r.last=3)),U(n.callee,r,19,0),n.optional&&e(r,`?.`,3),y(n.typeArguments,r),Ge(n.arguments,r),o&&e(r,`)`,3)},Ge=(t,n)=>{let{length:r}=t;if(r===0){e(n,`()`,3);return}e(n,`(`,3);for(let i=0;i<r;i++){i>0&&e(n,`, `,3);let r=t[i];r.type===`SpreadElement`?(e(n,`...`,3),U(r.argument,n,1,0)):U(r,n,1,0)}e(n,`)`,3)},Ke=(n,r,i)=>{let a=i>=13;a&&e(r,`(`,3),t(r,`#`),e(r,n.left.name,0),e(r,` in `,3),U(n.right,r,12,1),a&&e(r,`)`,3)},qe=(t,n)=>{let r=(n.last-1|1)==7;r&&e(n,`(`,3);let{properties:i}=t,{length:a}=i,o=a>1;if(e(n,`{`,3),o){n.indentLevel++;for(let t=0;t<a;t++)e(n,t>0?`,
|
|
21
|
+
`:`
|
|
22
|
+
`,3),p(n),Je(i[t],n);e(n,`
|
|
23
|
+
`,3),n.indentLevel--,p(n)}else a===1&&(e(n,` `,3),Je(i[0],n),e(n,` `,3));e(n,`}`,3),r&&e(n,`)`,3)},Je=(t,n)=>{if(t.type===`SpreadElement`){e(n,`...`,3),U(t.argument,n,1,0);return}let{key:r,value:i}=t;if(i.type===`FunctionExpression`||i.type===`TSEmptyBodyFunctionExpression`){let{kind:a}=t,o=a===`get`,s=o||a===`set`;if(s&&e(n,o?`get `:`set `,3),t.method||s){i.async&&(d(n),e(n,`async `,3)),i.generator&&e(n,`*`,3),t.computed?(e(n,`[`,3),U(r,n,1,0),e(n,`]`,3)):G(r,n),w(i.typeParameters,n),F(i.params,n),i.returnType!=null&&S(i.returnType,n),i.body!=null&&(e(n,` `,3),I(i.body,n));return}}let a=!1,o=null;if(!t.computed&&r.type===`Identifier`){if(r.name===`__proto__`)a=t.shorthand;else{let e=s(i);e.type===`Identifier`&&r.name===e.name&&(a=!0,o=e)}}let{computed:c}=t;!c&&r.type===`Literal`&&typeof r.value==`number`&&(r.value<0||Object.is(r.value,-0)||!Number.isFinite(r.value))&&(c=!0),a?o===null?U(s(i),n,1,0):(d(n),e(n,o.name,0)):(c?(e(n,`[`,3),U(r,n,1,0),e(n,`]`,3)):G(r,n),e(n,`: `,3),U(i,n,1,0))},Ye=(t,n)=>{let{elements:r}=t,{length:i}=r,a=i>2;e(n,`[`,3),a&&n.indentLevel++;for(let t=0;t<i;t++){a?(e(n,t===0?`
|
|
24
|
+
`:`,
|
|
25
|
+
`,3),p(n)):t!==0&&e(n,`, `,3);let o=r[t];o!=null&&(o.type===`SpreadElement`?(e(n,`...`,3),U(o.argument,n,1,0)):U(o,n,1,0)),t===i-1&&o==null&&e(n,`,`,3)}a&&(e(n,`
|
|
26
|
+
`,3),n.indentLevel--,p(n)),e(n,`]`,3)},Xe=(t,n,r,a)=>{let{left:o}=t,s=r>=4;!s&&o.type===`ObjectPattern`&&(s=(n.last-1|1)==7),s&&e(n,`(`,3),K(o,n),e(n,i[t.operator],3),U(t.right,n,1,a),s&&e(n,`)`,3)},Ze=(t,n,r,i)=>{let a=r>=(t.prefix?18:19);a&&e(n,`(`,3);let s=o(t.operator);t.prefix?(f(n,s),e(n,t.operator,s),U(t.argument,n,18,i)):(U(t.argument,n,19,i),f(n,s),e(n,t.operator,s)),a&&e(n,`)`,3)},Qe=(t,n,r,i)=>{let o=r>=18;o&&e(n,`(`,3);let{operator:s}=t,c=!1;if(s.length>1)d(n),e(n,s,0),e(n,` `,3),c=s===`delete`&&t.argument.type===`Literal`&&t.argument.value===1/0;else{let t=a(s);f(n,t),t===9&&n.last===4&&(t=10),e(n,s,t)}c&&e(n,`(0, `,3),U(t.argument,n,17,i),c&&e(n,`)`,3),o&&e(n,`)`,3)},$e=(t,n,r,i)=>{let a=r>=5,o=0;a?e(n,`(`,3):o=i&1;let c=5;{let e=s(t.test).type;(e===`TSAsExpression`||e===`TSSatisfiesExpression`)&&(c=13)}U(t.test,n,c,o),e(n,` ? `,3),U(t.consequent,n,3,0),e(n,` : `,3),U(t.alternate,n,3,o),a&&e(n,`)`,3)},et=(t,n,r,i)=>{let a=r>=1;a&&e(n,`(`,3);let o=i&-3,{expressions:s}=t,{length:c}=s;for(let t=0;t<c;t++)t>0&&e(n,`, `,3),U(s[t],n,0,o);a&&e(n,`)`,3)},tt=(t,n,r,i)=>{let a=r>=4,o=a?i&-2:i;a&&e(n,`(`,3),t.async&&(d(n),e(n,`async `,3)),w(t.typeParameters,n);let{returnType:s}=t;s==null?L(t.params,n):(F(t.params,n),S(s,n),e(n,` => `,3));let{body:c}=t;c.type===`BlockStatement`?I(c,n):(n.last=8,U(c,n,1,o)),a&&e(n,`)`,3)},nt=(t,n,r)=>{let i=r>=21;i&&e(n,`(`,3),d(n),e(n,`new `,3),U(t.callee,n,20,2),y(t.typeArguments,n),Ge(t.arguments,n),i&&e(n,`)`,3)},rt=(n,r)=>{t(r,"`");let{quasis:i,expressions:a}=n,{length:o}=a,s=i[0];t(r,it(s));for(let n=0;n<o;n++){e(r,"${",3),U(a[n],r,0,0),t(r,`}`);let o=i[n+1];t(r,it(o))}e(r,"`",3)},it=e=>{let{raw:t}=e.value;return t.includes(`\r`)&&(t=t.replace(/\r\n?/g,`
|
|
27
|
+
`)),le(t)},at=(t,n,r,i)=>{let a=r>=18;a&&e(n,`(`,3),d(n),e(n,`await `,3),U(t.argument,n,17,i),a&&e(n,`)`,3)},ot=(t,n,r)=>{let i=r>=4;i&&e(n,`(`,3),d(n),e(n,`yield`,0),t.delegate&&e(n,`*`,3),t.argument!=null&&(e(n,` `,3),U(t.argument,n,3,0)),i&&e(n,`)`,3)},st=(n,r,i,a)=>{let o=i>=20||!!(a&2);o&&e(r,`(`,3),d(r),e(r,`import`,0),n.phase!=null&&(t(r,`.`),e(r,n.phase,0)),e(r,`(`,3),U(n.source,r,1,0),n.options!=null&&(e(r,`, `,3),U(n.options,r,1,0)),e(r,`)`,3),o&&e(r,`)`,3)},ct=(t,n,r,i)=>{r>=19||i&2?(e(n,`(`,3),U(t.expression,n,0,0),e(n,`)`,3)):U(t.expression,n,r,i)},W=(t,n)=>{switch(t.type){case`Identifier`:d(n),e(n,t.name,0),t.optional&&e(n,`?`,5),t.typeAnnotation!=null&&S(t.typeAnnotation,n);break;case`ObjectPattern`:lt(t,n),t.optional&&e(n,`?`,5),t.typeAnnotation!=null&&S(t.typeAnnotation,n);break;case`ArrayPattern`:dt(t,n),t.optional&&e(n,`?`,5),t.typeAnnotation!=null&&S(t.typeAnnotation,n);break;case`AssignmentPattern`:W(t.left,n),e(n,` = `,3),U(t.right,n,1,0);break;case`RestElement`:e(n,`...`,3),W(t.argument,n),t.typeAnnotation!=null&&S(t.typeAnnotation,n);break;default:throw Error(`Unknown binding pattern type: ${t.type}`)}},lt=(t,n)=>{let{properties:r}=t,{length:i}=r;if(i===0){e(n,`{}`,3);return}e(n,`{ `,3);for(let t=0;t<i;t++){t>0&&e(n,`, `,3);let i=r[t];i.type===`RestElement`?(e(n,`...`,3),W(i.argument,n)):ut(i,n)}e(n,` }`,3)},ut=(t,n)=>{let{key:r,value:i}=t,a=!1;!t.computed&&r.type===`Identifier`&&(i.type===`Identifier`&&r.name===i.name||i.type===`AssignmentPattern`&&i.left.type===`Identifier`&&r.name===i.left.name)&&(a=!0),a||(t.computed?(e(n,`[`,3),U(r,n,1,0),e(n,`]`,3)):G(r,n),e(n,`: `,3)),W(i,n)},G=(n,r)=>{switch(n.type){case`Identifier`:d(r),e(r,n.name,0);break;case`PrivateIdentifier`:t(r,`#`),e(r,n.name,0);break;case`Literal`:typeof n.value==`string`?h(r,n.value,n):g(n,r,1,0);break;default:U(n,r,1,0)}},dt=(t,n)=>{let{elements:r}=t,{length:i}=r,a=null;if(i>0){let e=r[i-1];e!=null&&e.type===`RestElement`&&(a=e,i--)}e(n,`[`,3);for(let t=0;t<i;t++){t!==0&&e(n,`, `,3);let o=r[t];o!=null&&W(o,n),t===i-1&&(o==null||a!==null)&&e(n,`,`,3)}a!==null&&(e(n,` `,3),W(a,n)),e(n,`]`,3)},K=(t,n)=>{switch(t.type){case`Identifier`:d(n),e(n,t.name,0);break;case`MemberExpression`:Ue(t,n,0);break;case`ObjectPattern`:ft(t,n);break;case`ArrayPattern`:ht(t,n);break;case`TSAsExpression`:case`TSSatisfiesExpression`:U(t,n,13,0);break;case`TSTypeAssertion`:U(t,n,18,0);break;default:U(t,n,1,0)}},ft=(t,n)=>{e(n,`{`,3);let{properties:r}=t,{length:i}=r;for(let t=0;t<i;t++){t>0&&e(n,`, `,3);let i=r[t];i.type===`RestElement`?(e(n,`...`,3),K(i.argument,n)):pt(i,n)}e(n,`}`,3)},pt=(t,n)=>{if(t.shorthand){let{value:r}=t;r.type===`AssignmentPattern`?(d(n),e(n,r.left.name,0),e(n,` = `,3),U(r.right,n,1,0)):(d(n),e(n,r.name,0))}else{let{key:r}=t;t.computed?(e(n,`[`,3),U(r,n,1,0),e(n,`]`,3)):G(r,n),e(n,`: `,3),mt(t.value,n)}},mt=(t,n)=>{t.type===`AssignmentPattern`?(K(t.left,n),e(n,` = `,3),U(t.right,n,1,0)):K(t,n)},ht=(t,n)=>{let{elements:r}=t,{length:i}=r,a=null;if(i>0){let e=r[i-1];e!=null&&e.type===`RestElement`&&(a=e,i--)}e(n,`[`,3);for(let t=0;t<i;t++){t!==0&&e(n,`, `,3);let o=r[t];o!=null&&mt(o,n),t===i-1&&(o==null||a!==null)&&e(n,`,`,3)}a!==null&&(i>0&&e(n,` `,3),e(n,`...`,3),K(a.argument,n)),e(n,`]`,3)},gt=(n,r)=>{p(r),d(r),e(r,`import`,0),n.importKind===`type`&&e(r,` type`,0),n.phase!=null&&(t(r,` `),e(r,n.phase,0));let{specifiers:i}=n,{length:a}=i;if(a===0){e(r,` `,3),h(r,n.source.value,n.source),q(n.attributes,r),e(r,`;
|
|
28
|
+
`,3);return}let o=!1;for(let t=0;t<a;t++){let n=i[t];switch(n.type){case`ImportDefaultSpecifier`:o?(e(r,` },`,3),o=!1):t===0?e(r,` `,3):e(r,`, `,3),d(r),e(r,n.local.name,0),t===a-1&&e(r,` `,3);break;case`ImportNamespaceSpecifier`:o?(e(r,` },`,3),o=!1):t===0?e(r,` `,3):e(r,`, `,3),e(r,`* as `,3),e(r,n.local.name,0),e(r,` `,3);break;default:{o?e(r,`, `,3):(t!==0&&e(r,`,`,3),o=!0,e(r,` { `,3)),n.importKind===`type`&&e(r,`type `,3);let i=J(n.imported,r),{local:a}=n;i!==a.name&&(e(r,` as `,3),e(r,a.name,0));break}}}e(r,o?` } from `:`from `,3),h(r,n.source.value,n.source),q(n.attributes,r),e(r,`;
|
|
29
|
+
`,3)},q=(t,n)=>{if(t==null)return;let{length:r}=t;if(r!==0){e(n,` with { `,3);for(let i=0;i<r;i++){i>0&&e(n,`, `,3);let r=t[i],{key:a}=r;a.type===`Identifier`?e(n,a.name,0):h(n,a.value,a),e(n,`: `,3),h(n,r.value.value,r.value)}e(n,` }`,3)}},J=(t,n)=>t.type===`Identifier`?(d(n),e(n,t.name,0),t.name):(h(n,t.value,t),t.value),_t=(t,n)=>{p(n),e(n,`export `,3);let{declaration:r}=t;if(r!=null){switch(r.type){case`VariableDeclaration`:Z(r,n,0),e(n,`;
|
|
30
|
+
`,3);break;case`FunctionDeclaration`:case`TSDeclareFunction`:P(r,n),e(n,`
|
|
31
|
+
`,3);break;case`ClassDeclaration`:R(r,n),e(n,`
|
|
32
|
+
`,3);break;case`TSModuleDeclaration`:k(r,n),e(n,`
|
|
33
|
+
`,3);break;case`TSInterfaceDeclaration`:A(r,n),e(n,`
|
|
34
|
+
`,3);break;case`TSEnumDeclaration`:M(r,n),e(n,`
|
|
35
|
+
`,3);break;case`TSTypeAliasDeclaration`:j(r,n),e(n,`;
|
|
36
|
+
`,3);break;case`TSImportEqualsDeclaration`:N(r,n),e(n,`;
|
|
37
|
+
`,3);break;default:throw Error(`Unknown export declaration type: ${r.type}`)}return}t.exportKind===`type`&&e(n,`type `,3),e(n,`{`,3);let{specifiers:i}=t,{length:a}=i;if(a>0){e(n,` `,3);for(let t=0;t<a;t++){t>0&&e(n,`, `,3);let r=i[t];r.exportKind===`type`&&e(n,`type `,3),J(r.local,n)!==(r.exported.type===`Identifier`?r.exported.name:r.exported.value)&&(e(n,` as `,3),J(r.exported,n))}e(n,` `,3)}e(n,`}`,3),t.source!=null&&(e(n,` from `,3),h(n,t.source.value,t.source),q(t.attributes,n)),e(n,`;
|
|
38
|
+
`,3)},vt=(t,n)=>{p(n),e(n,t.exportKind===`type`?`export type *`:`export *`,3),t.exported!=null&&(e(n,` as `,3),J(t.exported,n)),e(n,` from `,3),h(n,t.source.value,t.source),q(t.attributes,n),e(n,`;
|
|
39
|
+
`,3)},yt=(t,n)=>{p(n),e(n,`export default `,3);let{declaration:r}=t;switch(r.type){case`FunctionDeclaration`:case`TSDeclareFunction`:P(r,n),e(n,`
|
|
40
|
+
`,3);break;case`ClassDeclaration`:R(r,n),e(n,`
|
|
41
|
+
`,3);break;case`TSInterfaceDeclaration`:A(r,n),e(n,`
|
|
42
|
+
`,3);break;default:n.last=6,U(r,n,1,0),e(n,`;
|
|
43
|
+
`,3)}},bt=(n,r)=>{n.hashbang!=null&&(t(r,`#!`),t(r,n.hashbang.value),e(r,`
|
|
44
|
+
`,3)),Y(n.body,r)},Y=(n,r)=>{let{length:i}=n;if(i===0)return;let a=0,o=n[0];for(;o.type===`ExpressionStatement`;)if(o.directive!=null){if(xt(o,r),++a>=i)return;o=n[a]}else{let n=s(o.expression);n.type===`Literal`&&typeof n.value==`string`&&(p(r),t(r,`(`),h(r,n.value,n),e(r,`);
|
|
45
|
+
`,3),a++);break}for(;a<i;a++)X(n[a],r)},xt=(n,r)=>{p(r);let{directive:i}=n,a=`"`,{length:o}=i;for(let e=0;e<o;e++){let t=i[e];if(t===`"`){a=`'`;break}if(t===`'`)break;t===`\\`&&e++}t(r,a),t(r,i),t(r,a),e(r,`;
|
|
46
|
+
`,3)},X=(t,n)=>{switch(t.type){case`ExpressionStatement`:St(t,n);break;case`VariableDeclaration`:p(n),Z(t,n,0),e(n,`;
|
|
47
|
+
`,3);break;case`BlockStatement`:p(n),Q(t,n),e(n,`
|
|
48
|
+
`,3);break;case`IfStatement`:p(n),Ct(t,n);break;case`ReturnStatement`:Tt(t,n);break;case`FunctionDeclaration`:p(n),P(t,n),e(n,`
|
|
49
|
+
`,3);break;case`ForStatement`:jt(t,n);break;case`WhileStatement`:kt(t,n);break;case`DoWhileStatement`:At(t,n);break;case`SwitchStatement`:Dt(t,n);break;case`BreakStatement`:p(n),d(n),e(n,`break`,0),t.label!=null&&(e(n,` `,3),e(n,t.label.name,0)),e(n,`;
|
|
50
|
+
`,3);break;case`ContinueStatement`:p(n),d(n),e(n,`continue`,0),t.label!=null&&(e(n,` `,3),e(n,t.label.name,0)),e(n,`;
|
|
51
|
+
`,3);break;case`TryStatement`:Et(t,n);break;case`ThrowStatement`:p(n),d(n),e(n,`throw `,3),U(t.argument,n,0,0),e(n,`;
|
|
52
|
+
`,3);break;case`ForInStatement`:Mt(t,n);break;case`ForOfStatement`:Nt(t,n);break;case`ClassDeclaration`:p(n),R(t,n),e(n,`
|
|
53
|
+
`,3);break;case`LabeledStatement`:p(n),d(n),e(n,t.label.name,0),e(n,`:`,3),$(t.body,n);break;case`EmptyStatement`:p(n),e(n,`;
|
|
54
|
+
`,3);break;case`ImportDeclaration`:gt(t,n);break;case`ExportNamedDeclaration`:_t(t,n);break;case`ExportDefaultDeclaration`:yt(t,n);break;case`ExportAllDeclaration`:vt(t,n);break;case`WithStatement`:p(n),d(n),e(n,`with(`,3),U(t.object,n,0,0),e(n,`)`,3),$(t.body,n);break;case`DebuggerStatement`:p(n),d(n),e(n,`debugger;
|
|
55
|
+
`,3);break;case`TSModuleDeclaration`:p(n),k(t,n),e(n,`
|
|
56
|
+
`,3);break;case`TSInterfaceDeclaration`:p(n),A(t,n),e(n,`
|
|
57
|
+
`,3);break;case`TSTypeAliasDeclaration`:p(n),j(t,n),e(n,`;
|
|
58
|
+
`,3);break;case`TSEnumDeclaration`:p(n),M(t,n),e(n,`
|
|
59
|
+
`,3);break;case`TSImportEqualsDeclaration`:p(n),N(t,n),e(n,`;
|
|
60
|
+
`,3);break;case`TSDeclareFunction`:p(n),P(t,n),e(n,`
|
|
61
|
+
`,3);break;case`TSExportAssignment`:p(n),e(n,`export = `,3),U(t.expression,n,0,0),e(n,`;
|
|
62
|
+
`,3);break;case`TSNamespaceExportDeclaration`:p(n),e(n,`export as namespace `,3),e(n,t.id.name,0),e(n,`;
|
|
63
|
+
`,3);break;default:throw Error(`Unknown statement type: ${t.type}`)}},St=(t,n)=>{p(n),n.last=7,U(t.expression,n,0,0),e(n,`;
|
|
64
|
+
`,3)},Z=(t,n,r)=>{d(n),t.declare&&e(n,`declare `,3),e(n,t.kind,0);let{declarations:i}=t,{length:a}=i;a>0&&e(n,` `,3);for(let t=0;t<a;t++){t>0&&e(n,`, `,3);let a=i[t],{id:o}=a;a.definite?(d(n),e(n,o.name,0),e(n,`!`,9),o.typeAnnotation!=null&&S(o.typeAnnotation,n)):W(o,n),a.init!=null&&(e(n,` = `,3),U(a.init,n,1,r))}},Q=(t,n)=>{let{body:r}=t,{length:i}=r;if(i===0){e(n,`{}`,3);return}e(n,`{
|
|
65
|
+
`,3),n.indentLevel++;for(let e=0;e<i;e++)X(r[e],n);n.indentLevel--,p(n),e(n,`}`,3)},Ct=(t,n)=>{d(n),e(n,`if (`,3),U(t.test,n,0,0);let{consequent:r,alternate:i}=t;r.type===`BlockStatement`?(e(n,`) `,3),Q(r,n),e(n,i==null?`
|
|
66
|
+
`:` `,3)):wt(r)?(e(n,`) {
|
|
67
|
+
`,3),n.indentLevel++,X(r,n),n.indentLevel--,p(n),e(n,`}`,3),e(n,i==null?`
|
|
68
|
+
`:` `,3)):(e(n,`)`,3),$(r,n),i!=null&&p(n)),i!=null&&(d(n),e(n,`else`,0),i.type===`BlockStatement`?(e(n,` `,3),Q(i,n),e(n,`
|
|
69
|
+
`,3)):i.type===`IfStatement`?(e(n,` `,3),Ct(i,n)):$(i,n))},wt=e=>{for(;;)switch(e.type){case`IfStatement`:if(e.alternate==null)return!0;e=e.alternate;break;case`ForStatement`:case`ForOfStatement`:case`ForInStatement`:case`WhileStatement`:case`WithStatement`:case`LabeledStatement`:e=e.body;break;default:return!1}},Tt=(t,n)=>{p(n),d(n);let{argument:r}=t;r==null?e(n,`return`,0):(e(n,`return `,3),U(r,n,0,0)),e(n,`;
|
|
70
|
+
`,3)},Et=(t,n)=>{p(n),d(n),e(n,`try `,3),Q(t.block,n);let{handler:r}=t;r!=null&&(e(n,` catch`,0),r.param!=null&&(e(n,` (`,3),W(r.param,n),e(n,`)`,3)),e(n,` `,3),Q(r.body,n)),t.finalizer!=null&&(e(n,` finally `,3),Q(t.finalizer,n)),e(n,`
|
|
71
|
+
`,3)},Dt=(t,n)=>{p(n),d(n),e(n,`switch (`,3),U(t.discriminant,n,0,0),e(n,`) `,3);let{cases:r}=t,{length:i}=r;if(i===0){e(n,`{}
|
|
72
|
+
`,3);return}e(n,`{
|
|
73
|
+
`,3),n.indentLevel++;for(let e=0;e<i;e++)Ot(r[e],n);n.indentLevel--,p(n),e(n,`}
|
|
74
|
+
`,3)},Ot=(t,n)=>{p(n),t.test==null?e(n,`default`,0):(e(n,`case `,3),U(t.test,n,0,0)),e(n,`:`,3);let{consequent:r}=t,{length:i}=r;if(i===1){$(r[0],n);return}e(n,`
|
|
75
|
+
`,3),n.indentLevel++;for(let e=0;e<i;e++)X(r[e],n);n.indentLevel--},kt=(t,n)=>{p(n),d(n),e(n,`while (`,3),U(t.test,n,0,0),e(n,`)`,3),$(t.body,n)},At=(t,n)=>{p(n),d(n),e(n,`do`,0);let{body:r}=t;r.type===`BlockStatement`?(e(n,` `,3),Q(r,n),e(n,` `,3)):r.type===`EmptyStatement`?(p(n),e(n,`;
|
|
76
|
+
`,3)):(e(n,`
|
|
77
|
+
`,3),n.indentLevel++,X(r,n),n.indentLevel--,p(n)),e(n,`while (`,3),U(t.test,n,0,0),e(n,`);
|
|
78
|
+
`,3)},jt=(t,n)=>{p(n),d(n),e(n,`for (`,3);let{init:r}=t;r!=null&&(r.type===`VariableDeclaration`?Z(r,n,1):U(r,n,0,1));let{test:i,update:a}=t;i==null?e(n,`;`,3):(e(n,`; `,3),U(i,n,0,0)),a==null?e(n,`;)`,3):(e(n,`; `,3),U(a,n,0,0),e(n,`)`,3)),$(t.body,n)},Mt=(t,n)=>{p(n),d(n),e(n,`for (`,3);let{left:r}=t;r.type===`VariableDeclaration`?Z(r,n,1):K(r,n),e(n,` in `,3),U(t.right,n,0,0),e(n,`)`,3),$(t.body,n)},Nt=(t,n)=>{p(n),d(n),e(n,`for`,0),t.await&&e(n,` await`,0),e(n,` (`,3);let{left:r}=t;if(r.type===`VariableDeclaration`)Z(r,n,0);else{let i=s(r),a=Pt(r)||!t.await&&i.type===`Identifier`&&i.name===`async`;a&&e(n,`(`,3),K(r,n),a&&e(n,`)`,3)}e(n,` of `,3),U(t.right,n,1,0),e(n,`)`,3),$(t.body,n)},Pt=e=>{for(;;)switch(e.type){case`Identifier`:return e.name===`let`;case`MemberExpression`:if(e.computed){let t=s(e.object);if(t.type===`Identifier`&&t.name===`let`)return!1}e=e.object;break;case`ParenthesizedExpression`:e=e.expression;break;default:return!1}},$=(t,n)=>{t.type===`BlockStatement`?(e(n,` `,3),Q(t,n),e(n,`
|
|
79
|
+
`,3)):t.type===`EmptyStatement`?e(n,`;
|
|
80
|
+
`,3):(n.pendingIndentAsSpace=!0,X(t,n))},Ft=(e,t,n)=>(e.type===`Program`?bt(e,t):X(e,t),t.output);export{Ft as printSync};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
const e=(e,t)=>{let{output:n,mapOffsets:r,mapPositions:i,mapNames:a}=e,o=t.file||t._file,s={line:1,column:0},c={original:null,generated:s,name:void 0,source:o},l=1,u=0,d=n.indexOf(`
|
|
2
|
+
`);d===-1&&(d=1/0);let{length:ee}=r;for(let e=0;e<ee;e++){let o=r[e];for(;o>d;){l++,u=d+1;let e=n.indexOf(`
|
|
3
|
+
`,u);d=e===-1?1/0:e}s.line=l,s.column=o-u,c.original=i[e],c.name=a[e],t.addMapping(c)}},t=(e,t,n)=>{e.last=n,e.output+=t},n=(e,t)=>{e.output+=t},r=(e,t,n,r)=>{r.loc!=null&&(e.mapOffsets.push(e.output.length),e.mapPositions.push(r.loc.start),e.mapNames.push(r.name)),e.last=n,e.output+=t},i=(e,t,n)=>{n.loc!=null&&(e.mapOffsets.push(e.output.length),e.mapPositions.push(n.loc.start),e.mapNames.push(n.name)),e.output+=t},a={__proto__:null,"**":17,"*":16,"/":16,"%":16,"+":15,"-":15,"<<":14,">>":14,">>>":14,"<":13,">":13,"<=":13,">=":13,instanceof:13,in:13,"==":12,"!=":12,"===":12,"!==":12,"&":11,"^":10,"|":9,"&&":8,"||":7,"??":6},o={__proto__:null,"**":` ** `,"*":` * `,"/":` / `,"%":` % `,"+":` + `,"-":` - `,"<<":` << `,">>":` >> `,">>>":` >>> `,"<":` < `,">":` > `,"<=":` <= `,">=":` >= `,instanceof:` instanceof `,in:` in `,"==":` == `,"!=":` != `,"===":` === `,"!==":` !== `,"&":` & `,"^":` ^ `,"|":` | `,"&&":` && `,"||":` || `,"??":` ?? `},s={__proto__:null,"=":` = `,"+=":` += `,"-=":` -= `,"*=":` *= `,"/=":` /= `,"%=":` %= `,"**=":` **= `,"<<=":` <<= `,">>=":` >>= `,">>>=":` >>>= `,"&=":` &= `,"^=":` ^= `,"|=":` |= `,"&&=":` &&= `,"||=":` ||= `,"??=":` ??= `},c=e=>{switch(e){case`+`:return 11;case`-`:return 13;case`!`:return 9;default:return 3}},l=e=>e===`++`?12:14,u=e=>{for(;e.type===`ParenthesizedExpression`;)e=e.expression;return e},d=(e,t,n,r)=>{let i={e,precedence:n,ctx:r,leftPrecedence:0,operator:e.operator,wrap:!1,rightPrecedence:0,parent:null};for(;;){ee(i,t);let e=u(i.e.left);if(e.type===`BinaryExpression`||e.type===`LogicalExpression`){if(e.type===`BinaryExpression`&&e.left.type===`PrivateIdentifier`){Xe(e,t,0),f(i,t);break}i={e,precedence:i.leftPrecedence,ctx:i.ctx,leftPrecedence:0,operator:i.operator,wrap:!1,rightPrecedence:0,parent:i}}else{H(i.e.left,t,i.leftPrecedence,i.ctx),f(i,t);break}}for(;(i=i.parent)!==null;)f(i,t)},ee=(e,n)=>{let{e:r}=e,i=r.operator,o=a[i],s=e.precedence>=o&&(!te(e.operator)||e.precedence!==a[e.operator]);e.operator=i,e.wrap=s||i===`in`&&!!(e.ctx&1),e.wrap&&(t(n,`(`,3),e.ctx&=-2);let c=o-1;if(e.leftPrecedence=c,e.rightPrecedence=c,o===17?e.leftPrecedence=o:e.rightPrecedence=o,i===`??`){let t=u(r.left);t.type===`LogicalExpression`&&t.operator!==`??`&&(e.leftPrecedence=18);let n=u(r.right);n.type===`LogicalExpression`&&n.operator!==`??`&&(e.rightPrecedence=18)}else if(i===`**`){let t=u(r.left);(t.type===`UnaryExpression`||t.type===`AwaitExpression`||t.type===`TSTypeAssertion`||t.type===`Literal`&&(typeof t.value==`number`||t.bigint!=null))&&(e.leftPrecedence=21)}},te=e=>e===`&&`||e===`||`||e===`??`,f=(e,n)=>{t(n,o[e.operator],3),H(e.e.right,n,e.rightPrecedence,e.ctx),e.wrap&&t(n,`)`,3)},p=e=>{e.last<=2&&t(e,` `,3)},m=(e,t)=>{let n=e.last;n>=10&&ne(e,n,t)},ne=(e,n,r)=>{(n===11&&(r===11||r===12)||n===13&&(r===13||r===14)||n===10&&r===14)&&t(e,` `,3)},h=e=>{if(e.pendingIndentAsSpace){t(e,` `,3),e.pendingIndentAsSpace=!1;return}let n=e.indentLevel;if(n>0){let{indents:r}=e;t(e,n<r.length?r[n]:re(e,n),3)}},re=(e,t)=>{let{indents:n,indentString:r}=e,{length:i}=n,a=n[i-1];for(;i<=t;i++)a+=r,a.charCodeAt(0),n.push(a);return a},g=(e,t,n)=>{Number.isInteger(t)?t<1e3?r(e,String(t),1,n):ie(e,t,n):ae(e,t,n)},ie=(e,a,o)=>{let s=String(a);if(a>=1e21){if(se(e,a,s.length-1,o))return;oe(e,s,s.indexOf(`e`),o);return}let{length:c}=s;if(!se(e,a,c,o)){if(s.charCodeAt(c-1)===48){let r=1;for(;s.charCodeAt(c-1-r)===48;)r++;let a=String(r);if(a.length+1<r){i(e,s.slice(0,c-r),o),n(e,`e`),t(e,a,0);return}}r(e,s,1,o)}},ae=(e,a,o)=>{let s=String(a);if(s.charCodeAt(0)===48){if(s.charCodeAt(2)===48){let r=3;for(;s.charCodeAt(r)===48;)r++;let a=String(s.length-2);if(a.length+2<r-1){i(e,s.slice(r),o),n(e,`e-`),t(e,a,0);return}}r(e,s.slice(1),0,o);return}let c=s.indexOf(`e`);if(c===-1){r(e,s,0,o);return}oe(e,s,c,o)},oe=(e,r,a,o)=>{let s=r.charCodeAt(a+1)===43?r.slice(a+2):r.slice(a+1);if(a>1){let c=String(Number(s)-(a-2));if(c.length<=s.length){i(e,r[0],o),n(e,r.slice(2,a)),n(e,`e`),t(e,c,0);return}}i(e,r.slice(0,a+1),o),t(e,s,0)},se=(e,n,r,a)=>{if(r<13)return!1;let o=BigInt(n).toString(16);return o.length+2>=r?!1:(i(e,`0x`,a),t(e,o,0),!0)},ce=/[\0\x07\b\v\f\n\r\x1B\\"<\u2028\u2029\xA0\uD800-\uDFFF]/,_=(e,r,a)=>{i(e,`"`,a),ce.test(r)?le(e,r):n(e,r),t(e,`"`,3)},le=(e,t)=>{let r=0,{length:i}=t;for(let a=0;a<i;a++){let o=null,s=t.charCodeAt(a);switch(s){case 0:if(a+1<i){let e=t.charCodeAt(a+1);if(e>=48&&e<=57){o=`\\x00`;break}}o=`\\0`;break;case 7:o=`\\x07`;break;case 8:o=`\\b`;break;case 11:o=`\\v`;break;case 12:o=`\\f`;break;case 10:o=`\\n`;break;case 13:o=`\\r`;break;case 27:o=`\\x1B`;break;case 92:o=`\\\\`;break;case 34:o=`\\"`;break;case 60:if(/^<\/script/i.test(t.slice(a,a+8))){o=`<\\`;break}continue;case 8232:o=`\\u2028`;break;case 8233:o=`\\u2029`;break;case 160:o=`\\xA0`;break;default:if(s>=55296&&s<=57343){if(s<=56319&&a+1<i){let e=t.charCodeAt(a+1);if(e>=56320&&e<=57343){a++;continue}}o=`\\u`+s.toString(16);break}continue}n(e,t.slice(r,a)),n(e,o),r=a+1}n(e,t.slice(r))},ue=e=>e.includes(`</`)?e.replace(/<\/(script)/gi,`<\\/$1`):e,v=(e,t,n,i)=>{let{value:a}=e;switch(typeof a){case`string`:_(t,a,e);break;case`number`:de(e,t,n,i);break;case`boolean`:p(t),r(t,a?`true`:`false`,0,e);break;default:e.regex==null?e.bigint==null?(p(t),r(t,`null`,0,e)):pe(e,t,n):fe(e,t)}},de=(e,i,a,o)=>{let{value:s}=e;if(o&4&&e.raw!=null){let{raw:t}=e;r(i,t,t[t.length-1]===`.`?3:0,e);return}if(s>0&&s<1/0)p(i),g(i,s,e);else if(Number.isNaN(s))p(i),r(i,`NaN`,0,e);else if(Number.isFinite(s))Object.is(s,0)?(p(i),r(i,`0`,1,e)):a>=18?(n(i,`(-`),g(i,-s,e),t(i,`)`,3)):(m(i,13),n(i,`-`),g(i,-s,e));else{let o=s<0,c=o&&a>=18;c&&t(i,`(`,3),o?(m(i,13),n(i,`-`)):p(i),r(i,`Infinity`,0,e),c&&t(i,`)`,3)}},fe=(e,r)=>{i(r,`/`,e),n(r,e.regex.pattern);let{flags:a}=e.regex;a===``?t(r,`/`,2):(n(r,`/`),t(r,a,0))},pe=(e,r,a)=>{p(r);let o=e.bigint;o.startsWith(`-`)&&a>=18?(i(r,`(`,e),n(r,o),t(r,`n)`,3)):(i(r,o,e),t(r,`n`,0))},me=(e,n,r,i)=>{let a=r>=13;a&&t(n,`(`,3),H(e.expression,n,17,i),t(n,e.type===`TSAsExpression`?` as `:` satisfies `,3),y(e.typeAnnotation,n),a&&t(n,`)`,3)},y=(e,i)=>{switch(e.type){case`TSTypeReference`:b(e.typeName,i),x(e.typeArguments,i);break;case`TSStringKeyword`:p(i),r(i,`string`,0,e);break;case`TSNumberKeyword`:p(i),r(i,`number`,0,e);break;case`TSBooleanKeyword`:p(i),r(i,`boolean`,0,e);break;case`TSAnyKeyword`:p(i),r(i,`any`,0,e);break;case`TSVoidKeyword`:p(i),r(i,`void`,0,e);break;case`TSUnknownKeyword`:p(i),r(i,`unknown`,0,e);break;case`TSNeverKeyword`:p(i),r(i,`never`,0,e);break;case`TSUndefinedKeyword`:p(i),r(i,`undefined`,0,e);break;case`TSNullKeyword`:p(i),r(i,`null`,0,e);break;case`TSObjectKeyword`:p(i),r(i,`object`,0,e);break;case`TSSymbolKeyword`:p(i),r(i,`symbol`,0,e);break;case`TSBigIntKeyword`:p(i),r(i,`bigint`,0,e);break;case`TSIntrinsicKeyword`:p(i),r(i,`intrinsic`,0,e);break;case`TSThisType`:p(i),r(i,`this`,0,e);break;case`TSLiteralType`:he(e.literal,i);break;case`TSUnionType`:ge(e,i);break;case`TSIntersectionType`:ve(e,i);break;case`TSArrayType`:{let n=S(e.elementType);n&&t(i,`(`,3),y(e.elementType,i),n&&t(i,`)`,3),t(i,`[]`,3);break}case`TSTypeLiteral`:be(e,i);break;case`TSFunctionType`:we(e,i);break;case`TSConstructorType`:e.abstract&&t(i,`abstract `,3),t(i,`new `,3),T(e.typeParameters,i),F(e.params,i),y(w(e.returnType),i);break;case`TSTupleType`:{t(i,`[`,3);let{elementTypes:n}=e,{length:r}=n;for(let e=0;e<r;e++)e>0&&t(i,`, `,3),D(n[e],i);t(i,`]`,3);break}case`TSConditionalType`:Te(e,i);break;case`TSInferType`:t(i,`infer `,3),E(e.typeParameter,i);break;case`TSIndexedAccessType`:{let n=S(e.objectType);n&&t(i,`(`,3),y(e.objectType,i),n&&t(i,`)`,3),t(i,`[`,3),y(e.indexType,i),t(i,`]`,3);break}case`TSMappedType`:Ee(e,i);break;case`TSTypeOperator`:De(e,i);break;case`TSTypePredicate`:Oe(e,i);break;case`TSTypeQuery`:t(i,`typeof `,3),ke(e.exprName,i),x(e.typeArguments,i);break;case`TSImportType`:O(e,i);break;case`TSTemplateLiteralType`:{n(i,"`");let{quasis:r,types:a}=e,{length:o}=r;for(let e=0;e<o;e++)e!==0&&(t(i,"${",3),y(a[e-1],i),n(i,`}`)),n(i,r[e].value.raw);t(i,"`",3);break}case`TSParenthesizedType`:t(i,`(`,3),y(e.typeAnnotation,i),t(i,`)`,3);break;case`TSNamedTupleMember`:D(e,i);break;case`TSQualifiedName`:b(e,i);break;case`TSOptionalType`:case`TSRestType`:D(e,i);break;case`TSJSDocUnknownType`:p(i),r(i,`unknown`,0,e);break;case`TSJSDocNullableType`:e.postfix?(y(w(e.typeAnnotation),i),t(i,`?`,5)):(i.last===5&&t(i,` `,3),t(i,`?`,5),y(w(e.typeAnnotation),i));break;case`TSJSDocNonNullableType`:e.postfix?(y(w(e.typeAnnotation),i),t(i,`!`,9)):(t(i,`!`,9),y(w(e.typeAnnotation),i));break;default:throw Error(`Unknown type node: ${e.type}`)}},b=(e,n)=>{e.type===`TSQualifiedName`?(b(e.left,n),t(n,`.`,3),r(n,e.right.name,0,e.right)):e.type===`ThisExpression`?(p(n),r(n,`this`,0,e)):(p(n),r(n,e.name,0,e))},x=(e,n)=>{if(e==null)return;t(n,`<`,4);let{params:r}=e,{length:i}=r;for(let e=0;e<i;e++)e>0&&t(n,`, `,3),y(r[e],n);t(n,`>`,3)},he=(e,t)=>{e.type===`Literal`?v(e,t,0,4):H(e,t,+(e.type===`UnaryExpression`),4)},ge=(e,n)=>{let{types:r}=e,{length:i}=r;for(let e=0;e<i;e++){e>0&&t(n,` | `,3);let i=_e(r[e]);i&&t(n,`(`,3),y(r[e],n),i&&t(n,`)`,3)}},_e=e=>{switch(e.type){case`TSUnionType`:return e.types.length>1;case`TSFunctionType`:case`TSConstructorType`:case`TSConditionalType`:case`TSInferType`:return!0;default:return!1}},ve=(e,n)=>{let{types:r}=e,{length:i}=r;for(let e=0;e<i;e++){e>0&&t(n,` & `,3);let i=ye(r[e]);i&&t(n,`(`,3),y(r[e],n),i&&t(n,`)`,3)}},ye=e=>e.type===`TSIntersectionType`?e.types.length>1:_e(e),S=e=>{switch(e.type){case`TSUnionType`:case`TSIntersectionType`:case`TSFunctionType`:case`TSConstructorType`:case`TSConditionalType`:case`TSInferType`:case`TSTypeOperator`:return!0;default:return!1}},be=(e,n)=>{let{members:i}=e,{length:a}=i;if(a===0){r(n,`{}`,3,e);return}r(n,`{
|
|
4
|
+
`,3,e),n.indentLevel++;for(let e=0;e<a;e++)h(n),xe(i[e],n,4),t(n,`;
|
|
5
|
+
`,3);n.indentLevel--,h(n),t(n,`}`,3)},xe=(e,n,r)=>{switch(e.type){case`TSPropertySignature`:e.readonly&&t(n,`readonly `,3),e.computed?(t(n,`[`,3),H(e.key,n,1,r),t(n,`]`,3)):Se(e.key,n,r),e.optional&&t(n,`?`,5),e.typeAnnotation!=null&&C(e.typeAnnotation,n);break;case`TSIndexSignature`:Ce(e,n);break;case`TSMethodSignature`:e.kind===`get`?t(n,`get `,3):e.kind===`set`&&t(n,`set `,3),e.computed?(t(n,`[`,3),H(e.key,n,1,r),t(n,`]`,3)):Se(e.key,n,r),e.optional&&t(n,`?`,5),T(e.typeParameters,n),N(e.params,n),e.returnType!=null&&C(e.returnType,n);break;case`TSCallSignatureDeclaration`:T(e.typeParameters,n),N(e.params,n),e.returnType!=null&&C(e.returnType,n);break;case`TSConstructSignatureDeclaration`:t(n,`new `,3),T(e.typeParameters,n),N(e.params,n),e.returnType!=null&&C(e.returnType,n);break;default:throw Error(`Unknown signature type: ${e.type}`)}},Se=(e,t,n)=>{switch(e.type){case`Identifier`:p(t),r(t,e.name,0,e);break;case`PrivateIdentifier`:r(t,e.name,0,e);break;case`Literal`:typeof e.value==`string`?_(t,e.value,e):v(e,t,1,n);break;default:H(e,t,1,n)}},C=(e,n)=>{t(n,`: `,3),y(w(e),n)},w=e=>e.type===`TSTypeAnnotation`?e.typeAnnotation:e,Ce=(e,n)=>{e.static&&t(n,`static `,3),e.readonly&&t(n,`readonly `,3),t(n,`[`,3);let i=e.parameters[0];r(n,i.name,0,i),t(n,`: `,3),y(w(i.typeAnnotation),n),t(n,`]: `,3),y(w(e.typeAnnotation),n)},T=(e,n)=>{if(e==null)return;let{params:r}=e,{length:i}=r,a=i>=2;if(t(n,`<`,4),a){n.indentLevel++;for(let e=0;e<i;e++)t(n,e===0?`
|
|
6
|
+
`:`,
|
|
7
|
+
`,3),h(n),E(r[e],n);t(n,`
|
|
8
|
+
`,3),n.indentLevel--,h(n)}else{for(let e=0;e<i;e++)e>0&&t(n,`, `,3),E(r[e],n);n.isJsx&&t(n,`,`,3)}t(n,`>`,3)},E=(e,i)=>{e.const&&n(i,`const `),e.in&&n(i,`in `),e.out&&n(i,`out `),r(i,e.name.name,0,e.name),e.constraint!=null&&(t(i,` extends `,3),y(e.constraint,i)),e.default!=null&&(t(i,` = `,3),y(e.default,i))},we=(e,t)=>{T(e.typeParameters,t),F(e.params,t),y(w(e.returnType),t)},D=(e,n)=>{switch(e.type){case`TSOptionalType`:{let r=S(e.typeAnnotation);r&&t(n,`(`,3),y(e.typeAnnotation,n),r&&t(n,`)`,3),t(n,`?`,5);break}case`TSRestType`:t(n,`...`,3),y(e.typeAnnotation,n);break;case`TSNamedTupleMember`:r(n,e.label.name,0,e.label),e.optional&&t(n,`?`,5),t(n,`: `,3),y(e.elementType,n);break;default:y(e,n)}},Te=(e,n)=>{let{checkType:r,extendsType:i}=e,a=r.type===`TSFunctionType`||r.type===`TSConstructorType`||r.type===`TSConditionalType`;a&&t(n,`(`,3),y(r,n),a&&t(n,`)`,3),t(n,` extends `,3);let o=i.type===`TSConditionalType`;o&&t(n,`(`,3),y(i,n),o&&t(n,`)`,3),t(n,` ? `,3),y(e.trueType,n),t(n,` : `,3),y(e.falseType,n)},Ee=(e,r)=>{n(r,`{ `);let{readonly:a}=e;a===!0?n(r,`readonly `):a===`+`?n(r,`+readonly `):a===`-`&&n(r,`-readonly `),n(r,`[`),e.key==null?(n(r,e.typeParameter.name.name),t(r,` in `,3),y(e.typeParameter.constraint,r)):(i(r,e.key.name,e.key),t(r,` in `,3),y(e.constraint,r)),e.nameType!=null&&(t(r,` as `,3),y(e.nameType,r)),n(r,`]`);let{optional:o}=e;o===!0?n(r,`?`):o===`+`?n(r,`+?`):o===`-`&&n(r,`-?`),e.typeAnnotation!=null&&(t(r,`: `,3),y(w(e.typeAnnotation),r)),t(r,` }`,3)},De=(e,n)=>{t(n,e.operator,0),t(n,` `,3);let r=w(e.typeAnnotation),i=r.type,a=i===`TSUnionType`||i===`TSIntersectionType`||i===`TSFunctionType`||i===`TSConstructorType`||i===`TSConditionalType`;a&&t(n,`(`,3),y(r,n),a&&t(n,`)`,3)},Oe=(e,n)=>{e.asserts&&t(n,`asserts `,3);let{parameterName:i}=e;i.type===`TSThisType`?t(n,`this`,0):(p(n),r(n,i.name,0,i)),e.typeAnnotation!=null&&(t(n,` is `,3),y(w(e.typeAnnotation),n))},ke=(e,t)=>{e.type===`TSImportType`?O(e,t):b(e,t)},O=(e,n)=>{t(n,`import(`,3);let r=e.source==null?e.argument:e.source;r.type===`Literal`?_(n,r.value,r):r.type===`TSLiteralType`?_(n,r.literal.value,r.literal):y(r,n),e.options!=null&&(t(n,`, `,3),H(e.options,n,0,4)),t(n,`)`,3),e.qualifier!=null&&(t(n,`.`,3),k(e.qualifier,n)),x(e.typeArguments,n)},k=(e,n)=>{e.type===`TSQualifiedName`?(k(e.left,n),t(n,`.`,3),t(n,e.right.name,0)):r(n,e.name,0,e)},Ae=(e,n,r,i)=>{let a=r>=18;a&&t(n,`(`,3),n.last===4&&t(n,` `,3),t(n,`<`,4),e.typeAnnotation.type===`TSFunctionType`&&t(n,` `,3),y(e.typeAnnotation,n),t(n,`>`,3),H(e.expression,n,17,i),a&&t(n,`)`,3)},A=(e,n)=>{e.declare&&t(n,`declare `,3);let i=e.kind==null?e.global?`global`:`module`:e.kind;if(r(n,i,0,e),i!==`global`){t(n,` `,3);let{id:r}=e;r.type===`Literal`?_(n,r.value,r):b(r,n)}let{body:a}=e;if(a==null){t(n,`;`,3);return}t(n,` `,3),je(a,n)},je=(e,n)=>{let i=e.body;if(i.length===0){r(n,`{}`,3,e);return}r(n,`{
|
|
9
|
+
`,3,e),n.indentLevel++,J(i,n),n.indentLevel--,h(n),t(n,`}`,3)},j=(e,n)=>{p(n),e.declare&&t(n,`declare `,3),r(n,`interface `,3,e),r(n,e.id.name,0,e.id),T(e.typeParameters,n);let i=e.extends;if(i!=null&&i.length>0){t(n,` extends `,3);let{length:e}=i;for(let r=0;r<e;r++){r>0&&t(n,`, `,3);let e=i[r];H(e.expression,n,21,0),x(e.typeArguments,n)}}t(n,` `,3);let a=e.body.body,{length:o}=a;if(o===0){r(n,`{}`,3,e.body);return}r(n,`{
|
|
10
|
+
`,3,e.body),n.indentLevel++;for(let e=0;e<o;e++)h(n),xe(a[e],n,0),t(n,`;
|
|
11
|
+
`,3);n.indentLevel--,h(n),t(n,`}`,3)},Me=(e,n)=>{e.declare&&t(n,`declare `,3),r(n,`type `,3,e),r(n,e.id.name,0,e.id),T(e.typeParameters,n),t(n,` = `,3);let i=Ne(e.typeAnnotation);i&&t(n,`(`,3),y(e.typeAnnotation,n),i&&t(n,`)`,3)},Ne=e=>{for(;;)switch(e.type){case`TSTypeReference`:return e.typeArguments==null&&e.typeName.type===`Identifier`&&e.typeName.name===`intrinsic`;case`TSArrayType`:e=e.elementType;break;case`TSIndexedAccessType`:e=e.objectType;break;case`TSUnionType`:case`TSIntersectionType`:if(e.types.length===0)return!1;e=e.types[0];break;case`TSConditionalType`:e=e.checkType;break;default:return!1}},Pe=(e,n)=>{p(n),e.declare&&t(n,`declare `,3),e.const&&t(n,`const `,3),r(n,`enum `,3,e),r(n,e.id.name,0,e.id),t(n,` `,3);let i=e.body==null?e.members:e.body.members,{length:a}=i;if(a===0){t(n,`{}`,3);return}t(n,`{
|
|
12
|
+
`,3),n.indentLevel++;let o=a-1;for(let e=0;e<a;e++)h(n),Fe(i[e],n),t(n,e===o?`
|
|
13
|
+
`:`,
|
|
14
|
+
`,3);n.indentLevel--,h(n),t(n,`}`,3)},Fe=(e,i)=>{let{id:a}=e;a.type===`Identifier`?(p(i),r(i,a.name,0,a)):a.type===`Literal`?_(i,a.value,a):(t(i,`[`,3),a.type===`TemplateLiteral`?(n(i,"`"),n(i,a.quasis[0].value.raw),t(i,"`",3)):H(a,i,1,0),t(i,`]`,3)),e.initializer!=null&&(t(i,` = `,3),H(e.initializer,i,0,0))},Ie=(e,n)=>{r(n,`import `,3,e),e.importKind===`type`&&t(n,`type `,3),r(n,e.id.name,0,e.id),t(n,` = `,3);let i=e.moduleReference;i.type===`TSExternalModuleReference`?(t(n,`require(`,3),_(n,i.expression.value,i.expression),t(n,`)`,3)):b(i,n)},M=(e,n)=>{let i=!1;e.type===`FunctionExpression`&&(i=(n.last|1)==7),i&&t(n,`(`,3),p(n),e.declare?(r(n,`declare `,3,e),t(n,e.async?`async function`:`function`,0)):r(n,e.async?`async function`:`function`,0,e),e.generator&&t(n,`* `,3),e.id!=null&&(p(n),r(n,e.id.name,0,e.id)),T(e.typeParameters,n),N(e.params,n),e.returnType!=null&&C(e.returnType,n),e.body==null?t(n,`;`,3):(t(n,` `,3),P(e.body,n)),i&&t(n,`)`,3)},N=(e,n)=>{if(e.length===0){t(n,`()`,3);return}t(n,`(`,3),Le(e,n),t(n,`)`,3)},Le=(e,r)=>{let{length:i}=e;for(let a=0;a<i;a++){a>0&&t(r,`, `,3);let i=e[a],{decorators:o}=i;o!=null&&o.length>0&&L(o,r),i.type===`TSParameterProperty`?(i.accessibility!=null&&(p(r),n(r,i.accessibility),t(r,` `,3)),i.override&&(p(r),t(r,`override `,3)),i.readonly&&(p(r),t(r,`readonly `,3)),U(i.parameter,r)):U(i,r)}},P=(e,n)=>{let i=e.body;if(i.length===0){r(n,`{}`,3,e);return}r(n,`{
|
|
15
|
+
`,3,e),n.indentLevel++,J(i,n),n.indentLevel--,h(n),t(n,`}`,3)},F=(e,n)=>{if(e.length===0){t(n,`() => `,3);return}t(n,`(`,3),Le(e,n),t(n,`) => `,3)},I=(e,n)=>{let i=!1;e.type===`ClassExpression`&&(i=(n.last|1)==7),i&&t(n,`(`,3);let{decorators:a}=e;a!=null&&a.length>0&&L(a,n),p(n);let o=e.declare,s=e.abstract;o&&r(n,`declare `,3,e),s&&(o?t(n,`abstract `,3):r(n,`abstract `,3,e)),o||s?t(n,`class`,0):r(n,`class`,0,e),e.id!=null&&(t(n,` `,3),r(n,e.id.name,0,e.id)),T(e.typeParameters,n),e.superClass!=null&&(t(n,` extends `,3),H(e.superClass,n,19,0),x(e.superTypeArguments,n));let{implements:c}=e;if(c!=null&&c.length>0){t(n,` implements `,3);let{length:e}=c;for(let r=0;r<e;r++){r>0&&t(n,`, `,3);let e=c[r];H(e.expression,n,21,0),x(e.typeArguments,n)}}t(n,` `,3),ze(e.body,n),i&&t(n,`)`,3)},L=(e,n)=>{let{length:i}=e;for(let a=0;a<i;a++){let i=e[a];r(n,`@`,3,i);let{expression:o}=i,s=Re(o);s&&t(n,`(`,3),H(o,n,0,0),s&&t(n,`)`,3),t(n,` `,3)}},Re=e=>{for(;;)switch(e.type){case`Identifier`:return!1;case`MemberExpression`:return e.computed;case`CallExpression`:e=e.callee;break;default:return!0}},ze=(e,n)=>{let{body:i}=e,{length:a}=i;if(a===0){r(n,`{}`,3,e);return}r(n,`{
|
|
16
|
+
`,3,e),n.indentLevel++;for(let e=0;e<a;e++){h(n);let r=i[e];switch(r.type){case`MethodDefinition`:case`TSAbstractMethodDefinition`:Be(r,n),t(n,`
|
|
17
|
+
`,3);break;case`PropertyDefinition`:case`TSAbstractPropertyDefinition`:Ve(r,n),t(n,`;
|
|
18
|
+
`,3);break;case`StaticBlock`:He(r,n),t(n,`
|
|
19
|
+
`,3);break;case`AccessorProperty`:case`TSAbstractAccessorProperty`:Ue(r,n),t(n,`;
|
|
20
|
+
`,3);break;case`TSIndexSignature`:Ce(r,n),t(n,`;
|
|
21
|
+
`,3);break;default:throw Error(`Unknown class element type: ${r.type}`)}}n.indentLevel--,h(n),t(n,`}`,3)},Be=(e,r)=>{let{decorators:i}=e;i!=null&&i.length>0&&L(i,r),e.accessibility!=null&&(p(r),n(r,e.accessibility),t(r,` `,3)),(e.type===`TSAbstractMethodDefinition`||e.abstract)&&(p(r),t(r,`abstract `,3)),e.static&&(p(r),t(r,`static `,3)),e.override&&(p(r),t(r,`override `,3));let{kind:a}=e;a===`get`?(p(r),t(r,`get `,3)):a===`set`&&(p(r),t(r,`set `,3));let o=e.value;o.async&&(p(r),t(r,`async `,3)),o.generator&&t(r,`*`,3),e.computed?(t(r,`[`,3),H(e.key,r,1,0),t(r,`]`,3)):W(e.key,r),e.optional&&t(r,`?`,5),T(o.typeParameters,r),N(o.params,r),o.returnType!=null&&C(o.returnType,r),o.body==null?t(r,`;`,3):(t(r,` `,3),P(o.body,r))},Ve=(e,r)=>{let{decorators:i}=e;i!=null&&i.length>0&&L(i,r),e.declare&&(p(r),t(r,`declare `,3)),e.accessibility!=null&&(p(r),n(r,e.accessibility),t(r,` `,3)),(e.type===`TSAbstractPropertyDefinition`||e.abstract)&&(p(r),t(r,`abstract `,3)),e.static&&(p(r),t(r,`static `,3)),e.override&&(p(r),t(r,`override `,3)),e.readonly&&(p(r),t(r,`readonly `,3)),e.computed?(t(r,`[`,3),H(e.key,r,1,0),t(r,`]`,3)):W(e.key,r),e.optional&&t(r,`?`,5),e.definite&&t(r,`!`,9),e.typeAnnotation!=null&&C(e.typeAnnotation,r),e.value!=null&&(t(r,` = `,3),H(e.value,r,1,0))},He=(e,n)=>{p(n),r(n,`static `,3,e);let{body:i}=e,{length:a}=i;if(a===0){t(n,`{}`,3);return}t(n,`{
|
|
22
|
+
`,3),n.indentLevel++;for(let e=0;e<a;e++)Y(i[e],n);n.indentLevel--,h(n),t(n,`}`,3)},Ue=(e,i)=>{let{decorators:a}=e;a!=null&&a.length>0&&L(a,i),(e.type===`TSAbstractAccessorProperty`||e.abstract)&&(p(i),t(i,`abstract `,3)),e.accessibility!=null&&(p(i),n(i,e.accessibility),t(i,` `,3)),e.static&&(p(i),t(i,`static `,3)),e.override&&(p(i),t(i,`override `,3)),p(i),r(i,`accessor`,0,e),e.computed?(t(i,` [`,3),H(e.key,i,1,0),t(i,`]`,3)):(t(i,` `,3),W(e.key,i)),e.definite&&t(i,`!`,9),e.typeAnnotation!=null&&C(e.typeAnnotation,i),e.value!=null&&(t(i,` = `,3),H(e.value,i,1,0))},R=(e,r)=>{let{openingElement:a}=e;i(r,`<`,a),z(a.name,r),x(a.typeArguments,r);let{attributes:o}=a,{length:s}=o;for(let e=0;e<s;e++){n(r,` `);let i=o[e];i.type===`JSXSpreadAttribute`?(t(r,`{...`,3),H(i.argument,r,1,0),n(r,`}`)):We(i,r)}let{closingElement:c}=e;if(c==null){t(r,` />`,3);return}n(r,`>`);let{children:l}=e,u=l.length;for(let e=0;e<u;e++)Ke(l[e],r);i(r,`</`,c),z(c.name,r),t(r,`>`,3)},z=(e,t)=>{switch(e.type){case`JSXIdentifier`:i(t,e.name,e);break;case`JSXMemberExpression`:z(e.object,t),n(t,`.`),z(e.property,t);break;case`JSXNamespacedName`:i(t,e.namespace.name,e),n(t,`:`),n(t,e.name.name);break;case`ThisExpression`:i(t,`this`,e);break;default:throw Error(`Unknown JSX name type: ${e.type}`)}},We=(e,t)=>{let{name:r}=e;r.type===`JSXNamespacedName`?(i(t,r.namespace.name,r),n(t,`:`),n(t,r.name.name)):i(t,r.name,r);let{value:a}=e;a!=null&&(n(t,`=`),Ge(a,t))},Ge=(e,t)=>{switch(e.type){case`Literal`:{let{raw:r}=e,a=r==null?String(e.value):r.slice(1,-1),o=a.includes(`"`)?`'`:`"`;i(t,o,e),n(t,a),n(t,o);break}case`JSXExpressionContainer`:B(e,t);break;case`JSXElement`:R(e,t);break;case`JSXFragment`:V(e,t);break;default:throw Error(`Unknown JSX attribute value type: ${e.type}`)}},B=(e,r)=>{t(r,`{`,3),e.expression.type!==`JSXEmptyExpression`&&H(e.expression,r,0,0),n(r,`}`)},V=(e,t)=>{i(t,`<>`,e.openingFragment);let{children:n}=e,{length:a}=n;for(let e=0;e<a;e++)Ke(n[e],t);r(t,`</>`,3,e.closingFragment)},Ke=(e,r)=>{switch(e.type){case`JSXText`:i(r,e.raw==null?e.value:e.raw,e);break;case`JSXExpressionContainer`:B(e,r);break;case`JSXElement`:R(e,r);break;case`JSXFragment`:V(e,r);break;case`JSXSpreadChild`:t(r,`{...`,3),H(e.expression,r,0,0),n(r,`}`);break;default:throw Error(`Unknown JSX child type: ${e.type}`)}},H=(e,a,o,s)=>{switch(e.type){case`Identifier`:p(a),r(a,e.name,0,e);break;case`MemberExpression`:qe(e,a,s);break;case`CallExpression`:Je(e,a,o,s);break;case`Literal`:v(e,a,o,s);break;case`BinaryExpression`:e.left.type===`PrivateIdentifier`?Xe(e,a,o):d(e,a,o,s);break;case`LogicalExpression`:d(e,a,o,s);break;case`ObjectExpression`:Ze(e,a);break;case`ArrayExpression`:$e(e,a);break;case`AssignmentExpression`:et(e,a,o,s);break;case`UpdateExpression`:tt(e,a,o,s);break;case`UnaryExpression`:nt(e,a,o,s);break;case`ConditionalExpression`:rt(e,a,o,s);break;case`SequenceExpression`:it(e,a,o,s);break;case`ArrowFunctionExpression`:at(e,a,o,s);break;case`FunctionExpression`:M(e,a);break;case`ThisExpression`:p(a),r(a,`this`,0,e);break;case`Super`:p(a),r(a,`super`,0,e);break;case`NewExpression`:ot(e,a,o);break;case`TemplateLiteral`:st(e,a);break;case`TaggedTemplateExpression`:H(e.tag,a,19,s&2),x(e.typeArguments,a),st(e.quasi,a);break;case`ClassExpression`:I(e,a);break;case`AwaitExpression`:lt(e,a,o,s);break;case`YieldExpression`:ut(e,a,o);break;case`ImportExpression`:dt(e,a,o,s);break;case`MetaProperty`:p(a),i(a,e.meta.name,e),n(a,`.`),t(a,e.property.name,0);break;case`ChainExpression`:ft(e,a,o,s);break;case`ParenthesizedExpression`:{let{expression:n}=e,r=u(n);r.type===`FunctionExpression`||r.type===`ArrowFunctionExpression`?(t(a,`(`,3),H(r,a,0,0),t(a,`)`,3)):H(n,a,o,s);break}case`JSXElement`:R(e,a);break;case`JSXFragment`:V(e,a);break;case`TSAsExpression`:case`TSSatisfiesExpression`:me(e,a,o,s);break;case`TSNonNullExpression`:H(e.expression,a,19,s),t(a,`!`,9);break;case`TSInstantiationExpression`:H(e.expression,a,18,s),x(e.typeArguments,a);break;case`TSTypeAssertion`:Ae(e,a,o,s);break;default:throw Error(`Unknown expression type: ${e.type}`)}},qe=(e,n,a)=>{let{object:o}=e;if(e.computed){let r=u(o),i=r.type===`Identifier`&&r.name===`let`;i&&t(n,`(`,3),H(o,n,19,a&2),i&&t(n,`)`,3),e.optional&&t(n,`?.`,3),t(n,`[`,3),H(e.property,n,0,0),t(n,`]`,3)}else{H(o,n,19,a&2),e.optional?t(n,`?`,5):n.last===1&&t(n,` `,3),t(n,`.`,3);let{property:s}=e;s.type===`PrivateIdentifier`?(i(n,`#`,s),t(n,s.name,0)):r(n,s.name,0,s)}},Je=(e,r,i,a)=>{let o=i>=20||!!(a&2);o&&(n(r,`(`),(r.last|1)!=7&&(r.last=3)),H(e.callee,r,19,0),e.optional&&t(r,`?.`,3),x(e.typeArguments,r),Ye(e.arguments,r),o&&t(r,`)`,3)},Ye=(e,n)=>{let{length:r}=e;if(r===0){t(n,`()`,3);return}t(n,`(`,3);for(let i=0;i<r;i++){i>0&&t(n,`, `,3);let r=e[i];r.type===`SpreadElement`?(t(n,`...`,3),H(r.argument,n,1,0)):H(r,n,1,0)}t(n,`)`,3)},Xe=(e,n,r)=>{let a=r>=13;a&&t(n,`(`,3),i(n,`#`,e.left),t(n,e.left.name,0),t(n,` in `,3),H(e.right,n,12,1),a&&t(n,`)`,3)},Ze=(e,n)=>{let i=(n.last-1|1)==7;i&&t(n,`(`,3);let{properties:a}=e,{length:o}=a,s=o>1;if(r(n,`{`,3,e),s){n.indentLevel++;for(let e=0;e<o;e++)t(n,e>0?`,
|
|
23
|
+
`:`
|
|
24
|
+
`,3),h(n),Qe(a[e],n);t(n,`
|
|
25
|
+
`,3),n.indentLevel--,h(n)}else o===1&&(t(n,` `,3),Qe(a[0],n),t(n,` `,3));t(n,`}`,3),i&&t(n,`)`,3)},Qe=(e,n)=>{if(e.type===`SpreadElement`){r(n,`...`,3,e),H(e.argument,n,1,0);return}let{key:i,value:a}=e;if(a.type===`FunctionExpression`||a.type===`TSEmptyBodyFunctionExpression`){let{kind:r}=e,o=r===`get`,s=o||r===`set`;if(s&&t(n,o?`get `:`set `,3),e.method||s){a.async&&(p(n),t(n,`async `,3)),a.generator&&t(n,`*`,3),e.computed?(t(n,`[`,3),H(i,n,1,0),t(n,`]`,3)):W(i,n),T(a.typeParameters,n),N(a.params,n),a.returnType!=null&&C(a.returnType,n),a.body!=null&&(t(n,` `,3),P(a.body,n));return}}let o=!1,s=null;if(!e.computed&&i.type===`Identifier`){if(i.name===`__proto__`)o=e.shorthand;else{let e=u(a);e.type===`Identifier`&&i.name===e.name&&(o=!0,s=e)}}let{computed:c}=e;!c&&i.type===`Literal`&&typeof i.value==`number`&&(i.value<0||Object.is(i.value,-0)||!Number.isFinite(i.value))&&(c=!0),o?s===null?H(u(a),n,1,0):(p(n),r(n,s.name,0,s)):(c?(t(n,`[`,3),H(i,n,1,0),t(n,`]`,3)):W(i,n),t(n,`: `,3),H(a,n,1,0))},$e=(e,n)=>{let{elements:i}=e,{length:a}=i,o=a>2;r(n,`[`,3,e),o&&n.indentLevel++;for(let e=0;e<a;e++){o?(t(n,e===0?`
|
|
26
|
+
`:`,
|
|
27
|
+
`,3),h(n)):e!==0&&t(n,`, `,3);let r=i[e];r!=null&&(r.type===`SpreadElement`?(t(n,`...`,3),H(r.argument,n,1,0)):H(r,n,1,0)),e===a-1&&r==null&&t(n,`,`,3)}o&&(t(n,`
|
|
28
|
+
`,3),n.indentLevel--,h(n)),t(n,`]`,3)},et=(e,n,r,i)=>{let{left:a}=e,o=r>=4;!o&&a.type===`ObjectPattern`&&(o=(n.last-1|1)==7),o&&t(n,`(`,3),G(a,n),t(n,s[e.operator],3),H(e.right,n,1,i),o&&t(n,`)`,3)},tt=(e,n,i,a)=>{let o=i>=(e.prefix?18:19);o&&t(n,`(`,3);let s=l(e.operator);e.prefix?(m(n,s),r(n,e.operator,s,e),H(e.argument,n,18,a)):(H(e.argument,n,19,a),m(n,s),t(n,e.operator,s)),o&&t(n,`)`,3)},nt=(e,n,i,a)=>{let o=i>=18;o&&t(n,`(`,3);let{operator:s}=e,l=!1;if(s.length>1)p(n),r(n,s,0,e),t(n,` `,3),l=s===`delete`&&e.argument.type===`Literal`&&e.argument.value===1/0;else{let t=c(s);m(n,t),t===9&&n.last===4&&(t=10),r(n,s,t,e)}l&&t(n,`(0, `,3),H(e.argument,n,17,a),l&&t(n,`)`,3),o&&t(n,`)`,3)},rt=(e,n,r,i)=>{let a=r>=5,o=0;a?t(n,`(`,3):o=i&1;let s=5;{let t=u(e.test).type;(t===`TSAsExpression`||t===`TSSatisfiesExpression`)&&(s=13)}H(e.test,n,s,o),t(n,` ? `,3),H(e.consequent,n,3,0),t(n,` : `,3),H(e.alternate,n,3,o),a&&t(n,`)`,3)},it=(e,n,r,i)=>{let a=r>=1;a&&t(n,`(`,3);let o=i&-3,{expressions:s}=e,{length:c}=s;for(let e=0;e<c;e++)e>0&&t(n,`, `,3),H(s[e],n,0,o);a&&t(n,`)`,3)},at=(e,n,i,a)=>{let o=i>=4,s=o?a&-2:a;o&&t(n,`(`,3),e.async&&(p(n),r(n,`async `,3,e)),T(e.typeParameters,n);let{returnType:c}=e;c==null?F(e.params,n):(N(e.params,n),C(c,n),t(n,` => `,3));let{body:l}=e;l.type===`BlockStatement`?P(l,n):(n.last=8,H(l,n,1,s)),o&&t(n,`)`,3)},ot=(e,n,i)=>{let a=i>=21;a&&t(n,`(`,3),p(n),r(n,`new `,3,e),H(e.callee,n,20,2),x(e.typeArguments,n),Ye(e.arguments,n),a&&t(n,`)`,3)},st=(e,r)=>{i(r,"`",e);let{quasis:a,expressions:o}=e,{length:s}=o,c=a[0];i(r,ct(c),c);for(let e=0;e<s;e++){t(r,"${",3),H(o[e],r,0,0),n(r,`}`);let s=a[e+1];i(r,ct(s),s)}t(r,"`",3)},ct=e=>{let{raw:t}=e.value;return t.includes(`\r`)&&(t=t.replace(/\r\n?/g,`
|
|
29
|
+
`)),ue(t)},lt=(e,n,i,a)=>{let o=i>=18;o&&t(n,`(`,3),p(n),r(n,`await `,3,e),H(e.argument,n,17,a),o&&t(n,`)`,3)},ut=(e,n,i)=>{let a=i>=4;a&&t(n,`(`,3),p(n),r(n,`yield`,0,e),e.delegate&&t(n,`*`,3),e.argument!=null&&(t(n,` `,3),H(e.argument,n,3,0)),a&&t(n,`)`,3)},dt=(e,i,a,o)=>{let s=a>=20||!!(o&2);s&&t(i,`(`,3),p(i),r(i,`import`,0,e),e.phase!=null&&(n(i,`.`),t(i,e.phase,0)),t(i,`(`,3),H(e.source,i,1,0),e.options!=null&&(t(i,`, `,3),H(e.options,i,1,0)),t(i,`)`,3),s&&t(i,`)`,3)},ft=(e,n,r,i)=>{r>=19||i&2?(t(n,`(`,3),H(e.expression,n,0,0),t(n,`)`,3)):H(e.expression,n,r,i)},U=(e,n)=>{switch(e.type){case`Identifier`:p(n),r(n,e.name,0,e),e.optional&&t(n,`?`,5),e.typeAnnotation!=null&&C(e.typeAnnotation,n);break;case`ObjectPattern`:pt(e,n),e.optional&&t(n,`?`,5),e.typeAnnotation!=null&&C(e.typeAnnotation,n);break;case`ArrayPattern`:ht(e,n),e.optional&&t(n,`?`,5),e.typeAnnotation!=null&&C(e.typeAnnotation,n);break;case`AssignmentPattern`:U(e.left,n),t(n,` = `,3),H(e.right,n,1,0);break;case`RestElement`:r(n,`...`,3,e),U(e.argument,n),e.typeAnnotation!=null&&C(e.typeAnnotation,n);break;default:throw Error(`Unknown binding pattern type: ${e.type}`)}},pt=(e,n)=>{let{properties:i}=e,{length:a}=i;if(a===0){r(n,`{}`,3,e);return}r(n,`{ `,3,e);for(let e=0;e<a;e++){e>0&&t(n,`, `,3);let r=i[e];r.type===`RestElement`?(t(n,`...`,3),U(r.argument,n)):mt(r,n)}t(n,` }`,3)},mt=(e,n)=>{let{key:r,value:i}=e,a=!1;!e.computed&&r.type===`Identifier`&&(i.type===`Identifier`&&r.name===i.name||i.type===`AssignmentPattern`&&i.left.type===`Identifier`&&r.name===i.left.name)&&(a=!0),a||(e.computed?(t(n,`[`,3),H(r,n,1,0),t(n,`]`,3)):W(r,n),t(n,`: `,3)),U(i,n)},W=(e,n)=>{switch(e.type){case`Identifier`:p(n),r(n,e.name,0,e);break;case`PrivateIdentifier`:i(n,`#`,e),t(n,e.name,0);break;case`Literal`:typeof e.value==`string`?_(n,e.value,e):v(e,n,1,0);break;default:H(e,n,1,0)}},ht=(e,n)=>{let{elements:i}=e,{length:a}=i,o=null;if(a>0){let e=i[a-1];e!=null&&e.type===`RestElement`&&(o=e,a--)}r(n,`[`,3,e);for(let e=0;e<a;e++){e!==0&&t(n,`, `,3);let r=i[e];r!=null&&U(r,n),e===a-1&&(r==null||o!==null)&&t(n,`,`,3)}o!==null&&(t(n,` `,3),U(o,n)),t(n,`]`,3)},G=(e,t)=>{switch(e.type){case`Identifier`:p(t),r(t,e.name,0,e);break;case`MemberExpression`:qe(e,t,0);break;case`ObjectPattern`:gt(e,t);break;case`ArrayPattern`:yt(e,t);break;case`TSAsExpression`:case`TSSatisfiesExpression`:H(e,t,13,0);break;case`TSTypeAssertion`:H(e,t,18,0);break;default:H(e,t,1,0)}},gt=(e,n)=>{r(n,`{`,3,e);let{properties:i}=e,{length:a}=i;for(let e=0;e<a;e++){e>0&&t(n,`, `,3);let r=i[e];r.type===`RestElement`?(t(n,`...`,3),G(r.argument,n)):_t(r,n)}t(n,`}`,3)},_t=(e,n)=>{if(e.shorthand){let{value:i}=e;i.type===`AssignmentPattern`?(p(n),r(n,i.left.name,0,i.left),t(n,` = `,3),H(i.right,n,1,0)):(p(n),r(n,i.name,0,i))}else{let{key:r}=e;e.computed?(t(n,`[`,3),H(r,n,1,0),t(n,`]`,3)):W(r,n),t(n,`: `,3),vt(e.value,n)}},vt=(e,n)=>{e.type===`AssignmentPattern`?(G(e.left,n),t(n,` = `,3),H(e.right,n,1,0)):G(e,n)},yt=(e,n)=>{let{elements:i}=e,{length:a}=i,o=null;if(a>0){let e=i[a-1];e!=null&&e.type===`RestElement`&&(o=e,a--)}r(n,`[`,3,e);for(let e=0;e<a;e++){e!==0&&t(n,`, `,3);let r=i[e];r!=null&&vt(r,n),e===a-1&&(r==null||o!==null)&&t(n,`,`,3)}o!==null&&(a>0&&t(n,` `,3),t(n,`...`,3),G(o.argument,n)),t(n,`]`,3)},bt=(e,i)=>{h(i),p(i),r(i,`import`,0,e),e.importKind===`type`&&t(i,` type`,0),e.phase!=null&&(n(i,` `),t(i,e.phase,0));let{specifiers:a}=e,{length:o}=a;if(o===0){t(i,` `,3),_(i,e.source.value,e.source),K(e.attributes,i),t(i,`;
|
|
30
|
+
`,3);return}let s=!1;for(let e=0;e<o;e++){let n=a[e];switch(n.type){case`ImportDefaultSpecifier`:s?(t(i,` },`,3),s=!1):e===0?t(i,` `,3):t(i,`, `,3),p(i),r(i,n.local.name,0,n),e===o-1&&t(i,` `,3);break;case`ImportNamespaceSpecifier`:s?(t(i,` },`,3),s=!1):e===0?t(i,` `,3):t(i,`, `,3),r(i,`* as `,3,n),r(i,n.local.name,0,n.local),t(i,` `,3);break;default:{s?t(i,`, `,3):(e!==0&&t(i,`,`,3),s=!0,t(i,` { `,3)),n.importKind===`type`&&t(i,`type `,3);let a=q(n.imported,i),{local:o}=n;a!==o.name&&(t(i,` as `,3),r(i,o.name,0,o));break}}}t(i,s?` } from `:`from `,3),_(i,e.source.value,e.source),K(e.attributes,i),t(i,`;
|
|
31
|
+
`,3)},K=(e,n)=>{if(e==null)return;let{length:i}=e;if(i!==0){t(n,` with { `,3);for(let a=0;a<i;a++){a>0&&t(n,`, `,3);let i=e[a],{key:o}=i;o.type===`Identifier`?r(n,o.name,0,o):_(n,o.value,o),t(n,`: `,3),_(n,i.value.value,i.value)}t(n,` }`,3)}},q=(e,t)=>e.type===`Identifier`?(p(t),r(t,e.name,0,e),e.name):(_(t,e.value,e),e.value),xt=(e,n)=>{h(n),r(n,`export `,3,e);let{declaration:i}=e;if(i!=null){switch(i.type){case`VariableDeclaration`:X(i,n,0),t(n,`;
|
|
32
|
+
`,3);break;case`FunctionDeclaration`:case`TSDeclareFunction`:M(i,n),t(n,`
|
|
33
|
+
`,3);break;case`ClassDeclaration`:I(i,n),t(n,`
|
|
34
|
+
`,3);break;case`TSModuleDeclaration`:A(i,n),t(n,`
|
|
35
|
+
`,3);break;case`TSInterfaceDeclaration`:j(i,n),t(n,`
|
|
36
|
+
`,3);break;case`TSEnumDeclaration`:Pe(i,n),t(n,`
|
|
37
|
+
`,3);break;case`TSTypeAliasDeclaration`:Me(i,n),t(n,`;
|
|
38
|
+
`,3);break;case`TSImportEqualsDeclaration`:Ie(i,n),t(n,`;
|
|
39
|
+
`,3);break;default:throw Error(`Unknown export declaration type: ${i.type}`)}return}e.exportKind===`type`&&t(n,`type `,3),t(n,`{`,3);let{specifiers:a}=e,{length:o}=a;if(o>0){t(n,` `,3);for(let e=0;e<o;e++){e>0&&t(n,`, `,3);let r=a[e];r.exportKind===`type`&&t(n,`type `,3),q(r.local,n)!==(r.exported.type===`Identifier`?r.exported.name:r.exported.value)&&(t(n,` as `,3),q(r.exported,n))}t(n,` `,3)}t(n,`}`,3),e.source!=null&&(t(n,` from `,3),_(n,e.source.value,e.source),K(e.attributes,n)),t(n,`;
|
|
40
|
+
`,3)},St=(e,n)=>{h(n),r(n,e.exportKind===`type`?`export type *`:`export *`,3,e),e.exported!=null&&(t(n,` as `,3),q(e.exported,n)),t(n,` from `,3),_(n,e.source.value,e.source),K(e.attributes,n),t(n,`;
|
|
41
|
+
`,3)},Ct=(e,n)=>{h(n),r(n,`export default `,3,e);let{declaration:i}=e;switch(i.type){case`FunctionDeclaration`:case`TSDeclareFunction`:M(i,n),t(n,`
|
|
42
|
+
`,3);break;case`ClassDeclaration`:I(i,n),t(n,`
|
|
43
|
+
`,3);break;case`TSInterfaceDeclaration`:j(i,n),t(n,`
|
|
44
|
+
`,3);break;default:n.last=6,H(i,n,1,0),t(n,`;
|
|
45
|
+
`,3)}},wt=(e,r)=>{e.hashbang!=null&&(n(r,`#!`),n(r,e.hashbang.value),t(r,`
|
|
46
|
+
`,3)),J(e.body,r)},J=(e,r)=>{let{length:i}=e;if(i===0)return;let a=0,o=e[0];for(;o.type===`ExpressionStatement`;)if(o.directive!=null){if(Tt(o,r),++a>=i)return;o=e[a]}else{let e=u(o.expression);e.type===`Literal`&&typeof e.value==`string`&&(h(r),n(r,`(`),_(r,e.value,e),t(r,`);
|
|
47
|
+
`,3),a++);break}for(;a<i;a++)Y(e[a],r)},Tt=(e,r)=>{h(r);let{directive:a}=e,o=`"`,{length:s}=a;for(let e=0;e<s;e++){let t=a[e];if(t===`"`){o=`'`;break}if(t===`'`)break;t===`\\`&&e++}i(r,o,e),n(r,a),n(r,o),t(r,`;
|
|
48
|
+
`,3)},Y=(e,n)=>{switch(e.type){case`ExpressionStatement`:Et(e,n);break;case`VariableDeclaration`:h(n),X(e,n,0),t(n,`;
|
|
49
|
+
`,3);break;case`BlockStatement`:h(n),Z(e,n),t(n,`
|
|
50
|
+
`,3);break;case`IfStatement`:h(n),Q(e,n);break;case`ReturnStatement`:Ot(e,n);break;case`FunctionDeclaration`:h(n),M(e,n),t(n,`
|
|
51
|
+
`,3);break;case`ForStatement`:Pt(e,n);break;case`WhileStatement`:Mt(e,n);break;case`DoWhileStatement`:Nt(e,n);break;case`SwitchStatement`:At(e,n);break;case`BreakStatement`:h(n),p(n),r(n,`break`,0,e),e.label!=null&&(t(n,` `,3),r(n,e.label.name,0,e.label)),t(n,`;
|
|
52
|
+
`,3);break;case`ContinueStatement`:h(n),p(n),r(n,`continue`,0,e),e.label!=null&&(t(n,` `,3),r(n,e.label.name,0,e.label)),t(n,`;
|
|
53
|
+
`,3);break;case`TryStatement`:kt(e,n);break;case`ThrowStatement`:h(n),p(n),r(n,`throw `,3,e),H(e.argument,n,0,0),t(n,`;
|
|
54
|
+
`,3);break;case`ForInStatement`:Ft(e,n);break;case`ForOfStatement`:It(e,n);break;case`ClassDeclaration`:h(n),I(e,n),t(n,`
|
|
55
|
+
`,3);break;case`LabeledStatement`:h(n),p(n),r(n,e.label.name,0,e.label),t(n,`:`,3),$(e.body,n);break;case`EmptyStatement`:h(n),t(n,`;
|
|
56
|
+
`,3);break;case`ImportDeclaration`:bt(e,n);break;case`ExportNamedDeclaration`:xt(e,n);break;case`ExportDefaultDeclaration`:Ct(e,n);break;case`ExportAllDeclaration`:St(e,n);break;case`WithStatement`:h(n),p(n),r(n,`with(`,3,e),H(e.object,n,0,0),t(n,`)`,3),$(e.body,n);break;case`DebuggerStatement`:h(n),p(n),r(n,`debugger;
|
|
57
|
+
`,3,e);break;case`TSModuleDeclaration`:h(n),A(e,n),t(n,`
|
|
58
|
+
`,3);break;case`TSInterfaceDeclaration`:h(n),j(e,n),t(n,`
|
|
59
|
+
`,3);break;case`TSTypeAliasDeclaration`:h(n),Me(e,n),t(n,`;
|
|
60
|
+
`,3);break;case`TSEnumDeclaration`:h(n),Pe(e,n),t(n,`
|
|
61
|
+
`,3);break;case`TSImportEqualsDeclaration`:h(n),Ie(e,n),t(n,`;
|
|
62
|
+
`,3);break;case`TSDeclareFunction`:h(n),M(e,n),t(n,`
|
|
63
|
+
`,3);break;case`TSExportAssignment`:h(n),r(n,`export = `,3,e),H(e.expression,n,0,0),t(n,`;
|
|
64
|
+
`,3);break;case`TSNamespaceExportDeclaration`:h(n),r(n,`export as namespace `,3,e),r(n,e.id.name,0,e.id),t(n,`;
|
|
65
|
+
`,3);break;default:throw Error(`Unknown statement type: ${e.type}`)}},Et=(e,n)=>{h(n),n.last=7,H(e.expression,n,0,0),t(n,`;
|
|
66
|
+
`,3)},X=(e,n,i)=>{p(n),e.declare?(r(n,`declare `,3,e),t(n,e.kind,0)):r(n,e.kind,0,e);let{declarations:a}=e,{length:o}=a;o>0&&t(n,` `,3);for(let e=0;e<o;e++){e>0&&t(n,`, `,3);let o=a[e],{id:s}=o;o.definite?(p(n),r(n,s.name,0,s),t(n,`!`,9),s.typeAnnotation!=null&&C(s.typeAnnotation,n)):U(s,n),o.init!=null&&(t(n,` = `,3),H(o.init,n,1,i))}},Z=(e,n)=>{let{body:i}=e,{length:a}=i;if(a===0){r(n,`{}`,3,e);return}r(n,`{
|
|
67
|
+
`,3,e),n.indentLevel++;for(let e=0;e<a;e++)Y(i[e],n);n.indentLevel--,h(n),t(n,`}`,3)},Q=(e,n)=>{p(n),r(n,`if (`,3,e),H(e.test,n,0,0);let{consequent:i,alternate:a}=e;i.type===`BlockStatement`?(t(n,`) `,3),Z(i,n),t(n,a==null?`
|
|
68
|
+
`:` `,3)):Dt(i)?(t(n,`) {
|
|
69
|
+
`,3),n.indentLevel++,Y(i,n),n.indentLevel--,h(n),t(n,`}`,3),t(n,a==null?`
|
|
70
|
+
`:` `,3)):(t(n,`)`,3),$(i,n),a!=null&&h(n)),a!=null&&(p(n),t(n,`else`,0),a.type===`BlockStatement`?(t(n,` `,3),Z(a,n),t(n,`
|
|
71
|
+
`,3)):a.type===`IfStatement`?(t(n,` `,3),Q(a,n)):$(a,n))},Dt=e=>{for(;;)switch(e.type){case`IfStatement`:if(e.alternate==null)return!0;e=e.alternate;break;case`ForStatement`:case`ForOfStatement`:case`ForInStatement`:case`WhileStatement`:case`WithStatement`:case`LabeledStatement`:e=e.body;break;default:return!1}},Ot=(e,n)=>{h(n),p(n);let{argument:i}=e;i==null?r(n,`return`,0,e):(r(n,`return `,3,e),H(i,n,0,0)),t(n,`;
|
|
72
|
+
`,3)},kt=(e,n)=>{h(n),p(n),r(n,`try `,3,e),Z(e.block,n);let{handler:i}=e;i!=null&&(t(n,` catch`,0),i.param!=null&&(t(n,` (`,3),U(i.param,n),t(n,`)`,3)),t(n,` `,3),Z(i.body,n)),e.finalizer!=null&&(t(n,` finally `,3),Z(e.finalizer,n)),t(n,`
|
|
73
|
+
`,3)},At=(e,n)=>{h(n),p(n),r(n,`switch (`,3,e),H(e.discriminant,n,0,0),t(n,`) `,3);let{cases:i}=e,{length:a}=i;if(a===0){t(n,`{}
|
|
74
|
+
`,3);return}t(n,`{
|
|
75
|
+
`,3),n.indentLevel++;for(let e=0;e<a;e++)jt(i[e],n);n.indentLevel--,h(n),t(n,`}
|
|
76
|
+
`,3)},jt=(e,n)=>{h(n),e.test==null?r(n,`default`,0,e):(r(n,`case `,3,e),H(e.test,n,0,0)),t(n,`:`,3);let{consequent:i}=e,{length:a}=i;if(a===1){$(i[0],n);return}t(n,`
|
|
77
|
+
`,3),n.indentLevel++;for(let e=0;e<a;e++)Y(i[e],n);n.indentLevel--},Mt=(e,n)=>{h(n),p(n),r(n,`while (`,3,e),H(e.test,n,0,0),t(n,`)`,3),$(e.body,n)},Nt=(e,n)=>{h(n),p(n),r(n,`do`,0,e);let{body:i}=e;i.type===`BlockStatement`?(t(n,` `,3),Z(i,n),t(n,` `,3)):i.type===`EmptyStatement`?(h(n),t(n,`;
|
|
78
|
+
`,3)):(t(n,`
|
|
79
|
+
`,3),n.indentLevel++,Y(i,n),n.indentLevel--,h(n)),t(n,`while (`,3),H(e.test,n,0,0),t(n,`);
|
|
80
|
+
`,3)},Pt=(e,n)=>{h(n),p(n),r(n,`for (`,3,e);let{init:i}=e;i!=null&&(i.type===`VariableDeclaration`?X(i,n,1):H(i,n,0,1));let{test:a,update:o}=e;a==null?t(n,`;`,3):(t(n,`; `,3),H(a,n,0,0)),o==null?t(n,`;)`,3):(t(n,`; `,3),H(o,n,0,0),t(n,`)`,3)),$(e.body,n)},Ft=(e,n)=>{h(n),p(n),r(n,`for (`,3,e);let{left:i}=e;i.type===`VariableDeclaration`?X(i,n,1):G(i,n),t(n,` in `,3),H(e.right,n,0,0),t(n,`)`,3),$(e.body,n)},It=(e,n)=>{h(n),p(n),r(n,`for`,0,e),e.await&&t(n,` await`,0),t(n,` (`,3);let{left:i}=e;if(i.type===`VariableDeclaration`)X(i,n,0);else{let r=u(i),a=Lt(i)||!e.await&&r.type===`Identifier`&&r.name===`async`;a&&t(n,`(`,3),G(i,n),a&&t(n,`)`,3)}t(n,` of `,3),H(e.right,n,1,0),t(n,`)`,3),$(e.body,n)},Lt=e=>{for(;;)switch(e.type){case`Identifier`:return e.name===`let`;case`MemberExpression`:if(e.computed){let t=u(e.object);if(t.type===`Identifier`&&t.name===`let`)return!1}e=e.object;break;case`ParenthesizedExpression`:e=e.expression;break;default:return!1}},$=(e,n)=>{e.type===`BlockStatement`?(t(n,` `,3),Z(e,n),t(n,`
|
|
81
|
+
`,3)):e.type===`EmptyStatement`?t(n,`;
|
|
82
|
+
`,3):(n.pendingIndentAsSpace=!0,Y(e,n))},Rt=(t,n,r)=>(t.type===`Program`?wt(t,n):Y(t,n),e(n,r.sourceMap),n.output);export{Rt as printSync};
|