@lithent/lithent-template-parser 0.1.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.
Files changed (41) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +159 -0
  3. package/dist/codegen/createElement.d.ts +10 -0
  4. package/dist/codegen/index.d.ts +1 -0
  5. package/dist/compiler.d.ts +26 -0
  6. package/dist/docPipe/index.d.ts +40 -0
  7. package/dist/docPipe/scan.d.ts +6 -0
  8. package/dist/index.d.ts +13 -0
  9. package/dist/index.mjs +2302 -0
  10. package/dist/index.mjs.map +1 -0
  11. package/dist/index.umd.cjs +13 -0
  12. package/dist/index.umd.cjs.map +1 -0
  13. package/dist/parser/ast.d.ts +207 -0
  14. package/dist/parser/lexer.d.ts +109 -0
  15. package/dist/parser/parser.d.ts +79 -0
  16. package/dist/parser/tokens.d.ts +51 -0
  17. package/dist/transform/directives.d.ts +30 -0
  18. package/dist/transform/index.d.ts +14 -0
  19. package/dist/transform/optimize.d.ts +21 -0
  20. package/package.json +53 -0
  21. package/src/codegen/createElement.ts +661 -0
  22. package/src/codegen/index.ts +1 -0
  23. package/src/compiler.ts +70 -0
  24. package/src/docPipe/index.ts +104 -0
  25. package/src/docPipe/scan.ts +318 -0
  26. package/src/index.ts +16 -0
  27. package/src/parser/ast.ts +478 -0
  28. package/src/parser/lexer.ts +561 -0
  29. package/src/parser/parser.ts +514 -0
  30. package/src/parser/tokens.ts +84 -0
  31. package/src/playground/main.ts +206 -0
  32. package/src/playground/style.css +135 -0
  33. package/src/shims/babel-env.ts +17 -0
  34. package/src/tests/compiler.test.ts +434 -0
  35. package/src/tests/docPipe.test.ts +41 -0
  36. package/src/tests/helpers.ts +96 -0
  37. package/src/tests/lexer.test.ts +282 -0
  38. package/src/tests/parser.test.ts +691 -0
  39. package/src/transform/directives.ts +160 -0
  40. package/src/transform/index.ts +29 -0
  41. package/src/transform/optimize.ts +203 -0
@@ -0,0 +1,13 @@
1
+ (function(u,l){typeof exports=="object"&&typeof module<"u"?l(exports):typeof define=="function"&&define.amd?define(["exports"],l):(u=typeof globalThis<"u"?globalThis:u||self,l(u.LithentTemplateParser={}))})(this,function(u){"use strict";var Ee=Object.defineProperty;var me=(u,l,m)=>l in u?Ee(u,l,{enumerable:!0,configurable:!0,writable:!0,value:m}):u[l]=m;var E=(u,l,m)=>me(u,typeof l!="symbol"?l+"":l,m);var l=(i=>(i.TAG_OPEN_START="TAG_OPEN_START",i.TAG_OPEN_END="TAG_OPEN_END",i.TAG_CLOSE_START="TAG_CLOSE_START",i.TAG_SELF_CLOSE="TAG_SELF_CLOSE",i.IDENTIFIER="IDENTIFIER",i.ATTRIBUTE_EQUALS="ATTRIBUTE_EQUALS",i.STRING_LITERAL="STRING_LITERAL",i.EXPRESSION_START="EXPRESSION_START",i.EXPRESSION_END="EXPRESSION_END",i.EXPRESSION_CONTENT="EXPRESSION_CONTENT",i.DIRECTIVE_IF="DIRECTIVE_IF",i.DIRECTIVE_ELSE_IF="DIRECTIVE_ELSE_IF",i.DIRECTIVE_ELSE="DIRECTIVE_ELSE",i.DIRECTIVE_FOR="DIRECTIVE_FOR",i.FRAGMENT_OPEN="FRAGMENT_OPEN",i.FRAGMENT_CLOSE="FRAGMENT_CLOSE",i.KEYWORD_REF="KEYWORD_REF",i.TEXT="TEXT",i.COMMENT="COMMENT",i.WHITESPACE="WHITESPACE",i.EOF="EOF",i))(l||{});function m(i,t,e){return{line:i,column:t,offset:e}}function g(i,t,e,n){return{type:i,value:t,start:e,end:n}}class K{constructor(t){E(this,"input");E(this,"position",0);E(this,"line",1);E(this,"column",1);E(this,"tokens",[]);this.input=t}tokenize(){for(;this.position<this.input.length;)this.readToken();const t=this.getCurrentPosition();return this.tokens.push(g(l.EOF,"",t,t)),this.tokens}getCurrentPosition(){return m(this.line,this.column,this.position)}peek(t=0){return this.input[this.position+t]||""}advance(){const t=this.input[this.position];return this.position++,t===`
2
+ `?(this.line++,this.column=1):this.column++,t}isEOF(){return this.position>=this.input.length}readToken(){const t=this.peek();if(t==="<"&&this.peek(1)===">"){this.readFragmentOpen();return}if(t==="<"&&this.peek(1)==="/"&&this.peek(2)===">"){this.readFragmentClose();return}if(t==="<"&&this.peek(1)==="!"&&this.peek(2)==="-"&&this.peek(3)==="-"){this.readComment();return}if(t==="<"){this.peek(1)==="/"?this.readCloseTag():this.readOpenTag();return}if(t==="{"){this.readExpression();return}if(this.isWhitespace(t)){this.readWhitespace();return}this.readText()}readComment(){const t=this.getCurrentPosition();let e="";for(e+=this.advance()+this.advance()+this.advance()+this.advance();!this.isEOF();){if(this.peek()==="-"&&this.peek(1)==="-"&&this.peek(2)===">"){e+=this.advance()+this.advance()+this.advance();break}e+=this.advance()}const n=this.getCurrentPosition();this.tokens.push(g(l.COMMENT,e,t,n))}readOpenTag(){const t=this.getCurrentPosition();this.advance();const e=this.getCurrentPosition();this.tokens.push(g(l.TAG_OPEN_START,"<",t,e)),this.readTagContent()}readCloseTag(){const t=this.getCurrentPosition();this.advance(),this.advance();const e=this.getCurrentPosition();if(this.tokens.push(g(l.TAG_CLOSE_START,"</",t,e)),this.skipWhitespace(),this.readIdentifier(),this.skipWhitespace(),this.peek()===">"){const n=this.getCurrentPosition();this.advance();const r=this.getCurrentPosition();this.tokens.push(g(l.TAG_OPEN_END,">",n,r))}}readTagContent(){for(this.skipWhitespace(),this.readIdentifier();!this.isEOF();){this.skipWhitespace();const t=this.peek();if(t==="/"&&this.peek(1)===">"){const e=this.getCurrentPosition();this.advance(),this.advance();const n=this.getCurrentPosition();this.tokens.push(g(l.TAG_SELF_CLOSE,"/>",e,n));return}if(t===">"){const e=this.getCurrentPosition();this.advance();const n=this.getCurrentPosition();this.tokens.push(g(l.TAG_OPEN_END,">",e,n));return}this.readAttribute()}}readAttribute(){if(this.readIdentifier()&&(this.skipWhitespace(),this.peek()==="=")){const e=this.getCurrentPosition();this.advance();const n=this.getCurrentPosition();this.tokens.push(g(l.ATTRIBUTE_EQUALS,"=",e,n)),this.skipWhitespace();const r=this.peek();r==='"'||r==="'"?this.readStringLiteral():r==="{"&&this.readExpression()}}readIdentifier(){const t=this.getCurrentPosition();let e="";const n=this.peek();if(this.isIdentifierStart(n))e+=this.advance();else{const o=this.getCurrentPosition(),a=this.advance(),h=this.getCurrentPosition();return this.tokens.push(g(l.TEXT,a,o,h)),""}for(;!this.isEOF()&&this.isIdentifierPart(this.peek());)e+=this.advance();const r=this.getCurrentPosition(),s=this.getIdentifierTokenType(e);return this.tokens.push(g(s,e,t,r)),e}getIdentifierTokenType(t){switch(t){case"l-if":return l.DIRECTIVE_IF;case"l-else-if":return l.DIRECTIVE_ELSE_IF;case"l-else":return l.DIRECTIVE_ELSE;case"l-for":return l.DIRECTIVE_FOR;case"ref":return l.KEYWORD_REF;default:return l.IDENTIFIER}}readStringLiteral(){const t=this.getCurrentPosition(),e=this.advance();let n=e,r=!1;for(;!this.isEOF();){const o=this.peek();if(r){n+=this.advance(),r=!1;continue}if(o==="\\"){r=!0,n+=this.advance();continue}if(o===e){n+=this.advance();break}n+=this.advance()}const s=this.getCurrentPosition();this.tokens.push(g(l.STRING_LITERAL,n,t,s))}readFragmentOpen(){const t=this.getCurrentPosition();this.advance(),this.advance();const e=this.getCurrentPosition();this.tokens.push(g(l.FRAGMENT_OPEN,"<>",t,e))}readFragmentClose(){const t=this.getCurrentPosition();this.advance(),this.advance(),this.advance();const e=this.getCurrentPosition();this.tokens.push(g(l.FRAGMENT_CLOSE,"</>",t,e))}readExpression(){const t=this.getCurrentPosition();this.advance();const e=this.getCurrentPosition();this.tokens.push(g(l.EXPRESSION_START,"{",t,e));let n="",r=1,s=null,o=!1,a=null,h=e;const c=()=>{const f=this.getCurrentPosition(),p=this.advance(),Q=this.getCurrentPosition();return n+=p,a||(a=f),h=Q,p};for(;!this.isEOF()&&r>0;){const f=this.peek();if(s){if(o){c(),o=!1;continue}if(f==="\\"){o=!0,c();continue}if(f===s){c(),s=null;continue}c();continue}if(f==='"'||f==="'"||f==="`"){s=f,c();continue}if(f==="{"){r++,c();continue}if(f==="}"){if(r--,r===0){if(n.trim()){const pe=a??e,ge=h;this.tokens.push(g(l.EXPRESSION_CONTENT,n,pe,ge))}const p=this.getCurrentPosition();this.advance();const Q=this.getCurrentPosition();this.tokens.push(g(l.EXPRESSION_END,"}",p,Q));return}c();continue}c()}if(n.trim()){const f=a??e,p=a?h:this.getCurrentPosition();this.tokens.push(g(l.EXPRESSION_CONTENT,n,f,p))}}readText(){const t=this.getCurrentPosition();let e="";for(;!this.isEOF();){const n=this.peek();if(n==="<"||n==="{")break;e+=this.advance()}if(e){const n=this.getCurrentPosition();this.tokens.push(g(l.TEXT,e,t,n))}}readWhitespace(){const t=this.getCurrentPosition();let e="";for(;!this.isEOF()&&this.isWhitespace(this.peek());)e+=this.advance();const n=this.getCurrentPosition();this.tokens.push(g(l.WHITESPACE,e,t,n))}skipWhitespace(){for(;!this.isEOF()&&this.isWhitespace(this.peek());)this.advance()}isWhitespace(t){return/\s/.test(t)}isIdentifierStart(t){return/[a-zA-Z_$:]/.test(t)}isIdentifierPart(t){return/[a-zA-Z0-9_$:.-]/.test(t)}}function P(i){return new K(i).tokenize()}var d=(i=>(i.ROOT="Root",i.ELEMENT="Element",i.FRAGMENT="Fragment",i.TEXT="Text",i.INTERPOLATION="Interpolation",i.COMMENT="Comment",i.ATTRIBUTE="Attribute",i.DIRECTIVE_IF="DirectiveIf",i.DIRECTIVE_ELSE_IF="DirectiveElseIf",i.DIRECTIVE_ELSE="DirectiveElse",i.DIRECTIVE_FOR="DirectiveFor",i))(d||{});function It(i){return i.type==="Element"}function St(i){return i.type==="Fragment"}function Nt(i){return i.type==="Text"}function kt(i){return i.type==="Interpolation"}function _t(i){return i.type==="Comment"}function Rt(i){return i.type==="DirectiveIf"||i.type==="DirectiveElseIf"||i.type==="DirectiveElse"||i.type==="DirectiveFor"}function Y(i,t,e){return{type:"Root",children:i,start:t,end:e}}function k(i,t,e,n,r,s,o){const a=/^[A-Z]/.test(i)||i.includes("."),h=t.find(f=>f.name==="ref"),c=h!=null&&h.value?typeof h.value=="string"?h.value:h.value.expression:void 0;return{type:"Element",tag:i,isComponent:a,isSelfClosing:r,attributes:t,directives:e,children:n,ref:c,start:s,end:o}}function Z(i,t,e){return{type:"Fragment",children:i,start:t,end:e}}function x(i,t,e){return{type:"Text",content:i,start:t,end:e}}function J(i,t,e){return{type:"Interpolation",expression:i,start:t,end:e}}function q(i,t,e){return{type:"Comment",content:i,start:t,end:e}}function _(i,t,e,n,r){return{type:"Attribute",name:i,value:t,isDynamic:e,start:n,end:r}}function tt(i,t,e){return{type:"DirectiveIf",condition:i,start:t,end:e}}function et(i,t,e){return{type:"DirectiveElseIf",condition:i,start:t,end:e}}function nt(i,t){return{type:"DirectiveElse",start:i,end:t}}function it(i,t,e,n,r){return{type:"DirectiveFor",item:i,index:e,list:t,start:n,end:r}}function $(i,t){i.type==="Root"?i.children.forEach(e=>{t(e),$(e,t)}):(i.type==="Element"||i.type==="Fragment")&&i.children.forEach(e=>{t(e),$(e,t)})}function R(i,t){if(i.type==="Root")return{...i,children:i.children.map(e=>{const n=t(e);return R(n,t)})};if(i.type==="Element"){const e=t(i);return e.type==="Element"?{...e,children:e.children.map(n=>{const r=t(n);return R(r,t)})}:e}else if(i.type==="Fragment"){const e=t(i);return e.type==="Fragment"?{...e,children:e.children.map(n=>{const r=t(n);return R(r,t)})}:e}return t(i)}class rt{constructor(t){E(this,"tokens");E(this,"position",0);this.tokens=t.filter(e=>e.type!==l.WHITESPACE)}parse(){const t=[];for(;!this.isEOF();){const r=this.parseTemplateNode();r&&t.push(r)}const e=t.length>0?t[0].start:{line:1,column:1,offset:0},n=t.length>0?t[t.length-1].end:{line:1,column:1,offset:0};return Y(t,e,n)}parseTemplateNode(){switch(this.peek().type){case l.TAG_OPEN_START:return this.parseElement();case l.FRAGMENT_OPEN:return this.parseFragment();case l.TEXT:return this.parseText();case l.EXPRESSION_START:return this.parseInterpolation();case l.COMMENT:return this.parseComment();case l.TAG_CLOSE_START:return this.advance(),null;case l.FRAGMENT_CLOSE:return this.advance(),null;case l.EOF:return null;default:return this.advance(),null}}parseFragment(){const t=this.peek().start;this.expect(l.FRAGMENT_OPEN);const e=[];for(;!this.isEOF()&&!this.check(l.FRAGMENT_CLOSE);){const n=this.parseTemplateNode();n&&e.push(n)}if(this.check(l.FRAGMENT_CLOSE)){const n=this.expect(l.FRAGMENT_CLOSE);return Z(e,t,n.end)}throw new Error(`Unclosed fragment starting at line ${t.line}, column ${t.column}`)}parseElement(){const t=this.peek().start;this.expect(l.TAG_OPEN_START);const e=this.peek();if(e.type!==l.IDENTIFIER)throw new Error(`Expected tag name at line ${e.start.line}, column ${e.start.column}`);const n=e.value;this.advance();const{attributes:r,directives:s}=this.parseAttributesAndDirectives();if(this.check(l.TAG_SELF_CLOSE)){const h=this.peek().end;return this.advance(),k(n,r,s,[],!0,t,h)}this.expect(l.TAG_OPEN_END);const o=[];for(;!this.isEOF()&&!this.check(l.TAG_CLOSE_START);){const h=this.parseTemplateNode();h&&o.push(h)}if(this.check(l.TAG_CLOSE_START)){this.advance();const h=this.peek();if(h.type!==l.IDENTIFIER){const p=new Error(`Expected closing tag name at line ${h.start.line}, column ${h.start.column}`);throw p.line=h.start.line,p.column=h.start.column,p}const c=h.value;if(c!==n){const p=new Error(`Mismatched closing tag: expected </${n}> but got </${c}> at line ${h.start.line}, column ${h.start.column}`);throw p.line=h.start.line,p.column=h.start.column,p}this.advance();const f=this.peek().end;return this.expect(l.TAG_OPEN_END),k(n,r,s,o,!1,t,f)}const a=o.length>0?o[o.length-1].end:t;return k(n,r,s,o,!1,t,a)}parseAttributesAndDirectives(){const t=[],e=[];for(;!this.isEOF()&&!this.check(l.TAG_OPEN_END)&&!this.check(l.TAG_SELF_CLOSE);){const n=this.peek();if(n.type===l.DIRECTIVE_IF||n.type===l.DIRECTIVE_ELSE_IF||n.type===l.DIRECTIVE_ELSE||n.type===l.DIRECTIVE_FOR){const r=this.parseDirective();r&&e.push(r)}else if(n.type===l.IDENTIFIER||n.type===l.KEYWORD_REF){const r=this.parseAttribute();r&&t.push(r)}else this.advance()}return{attributes:t,directives:e}}parseAttribute(){const t=this.peek().start,e=this.advance(),n=e.value;if(!this.check(l.ATTRIBUTE_EQUALS))return _(n,null,!1,t,e.end);this.advance();const r=this.peek();let s,o=!1,a=r.end;if(r.type===l.STRING_LITERAL)s=r.value.slice(1,-1),this.advance();else if(r.type===l.EXPRESSION_START){this.advance();const h=this.peek();h.type===l.EXPRESSION_CONTENT?(s={expression:h.value.trim()},o=!0,this.advance()):(s={expression:""},o=!0),this.check(l.EXPRESSION_END)&&(a=this.peek().end,this.advance())}else return _(n,null,!1,t,e.end);return _(n,s,o,t,a)}parseDirective(){const t=this.peek().start,e=this.advance();switch(e.type){case l.DIRECTIVE_IF:case l.DIRECTIVE_ELSE_IF:{this.expect(l.ATTRIBUTE_EQUALS),this.expect(l.EXPRESSION_START);const n=this.peek();let r="";n.type===l.EXPRESSION_CONTENT&&(r=n.value.trim(),this.advance());const s=this.peek().end;return this.expect(l.EXPRESSION_END),e.type===l.DIRECTIVE_IF?tt(r,t,s):et(r,t,s)}case l.DIRECTIVE_ELSE:{const n=e.end;return nt(t,n)}case l.DIRECTIVE_FOR:{this.expect(l.ATTRIBUTE_EQUALS),this.expect(l.EXPRESSION_START);const n=this.peek();let r="";n.type===l.EXPRESSION_CONTENT&&(r=n.value.trim(),this.advance());const s=this.peek().end;this.expect(l.EXPRESSION_END);const{item:o,index:a,list:h}=this.parseForExpression(r);return it(o,h,a,t,s)}default:return null}}parseForExpression(t){const e="[A-Za-z_$][\\w$]*",n=new RegExp(`^\\s*\\(\\s*(${e})\\s*,\\s*(${e})\\s*\\)\\s+in\\s+([\\s\\S]+)$`),r=new RegExp(`^\\s*(${e})\\s+in\\s+([\\s\\S]+)$`),s=t.match(n);if(s)return{item:s[1],index:s[2],list:s[3].trim()};const o=t.match(r);return o?{item:o[1],list:o[2].trim()}:{item:"item",list:t}}parseText(){const t=this.advance();return x(t.value,t.start,t.end)}parseInterpolation(){const t=this.peek().start;this.expect(l.EXPRESSION_START);const e=this.peek();let n="";e.type===l.EXPRESSION_CONTENT&&(n=e.value.trim(),this.advance());const r=this.peek().end;return this.expect(l.EXPRESSION_END),J(n,t,r)}parseComment(){const t=this.advance(),e=t.value.replace(/^<!--\s*|\s*-->$/g,"");return q(e,t.start,t.end)}peek(){return this.tokens[this.position]}advance(){const t=this.tokens[this.position];return this.position++,t}check(t){return this.isEOF()?!1:this.peek().type===t}expect(t){const e=this.peek();if(e.type!==t){const n=new Error(`Expected token ${t} but got ${e.type} at line ${e.start.line}, column ${e.start.column}`);throw n.line=e.start.line,n.column=e.start.column,n}return this.advance()}isEOF(){return this.position>=this.tokens.length||this.peek().type===l.EOF}}function G(i){return new rt(i).parse()}function st(i){return{...i,children:w(i.children)}}function w(i){const t=[];for(let e=0;e<i.length;e++){const n=i[e];if(n.type===d.ELEMENT){const r={...n,children:w(n.children)};if(n.directives.find(o=>o.type===d.DIRECTIVE_IF)){const o={if:r,elseIfs:[]};let a=e+1;for(;a<i.length;){const h=i[a];if(h.type===d.ELEMENT){const c=h.directives.find(p=>p.type===d.DIRECTIVE_ELSE_IF),f=h.directives.find(p=>p.type===d.DIRECTIVE_ELSE);if(c){o.elseIfs.push({...h,children:w(h.children)}),a++;continue}if(f){o.else={...h,children:w(h.children)},a++;break}}break}r.__conditionalGroup=o,e=a-1}t.push(r)}else n.type===d.FRAGMENT?t.push({...n,children:w(n.children)}):t.push(n)}return t}function ot(i){return i.__conditionalGroup}function Ot(i,t){return i.directives.some(e=>e.type===t)}function M(i,t){return i.directives.find(e=>e.type===t)}function ht(i,t){const e={mergeTextNodes:!0,removeWhitespace:!0,trimText:!0,...t};return{...i,children:W(i.children,e)}}function W(i,t){let e=i.map(n=>bt(n,t));return t.mergeTextNodes&&(e=Ft(e)),t.removeWhitespace&&(e=Dt(e)),e}function bt(i,t){return i.type===d.ELEMENT?yt(i,t):i.type===d.FRAGMENT?At(i,t):i.type===d.TEXT?Lt(i,t):i}function yt(i,t){return{...i,children:W(i.children,t)}}function At(i,t){return{...i,children:W(i.children,t)}}function Lt(i,t){let e=i.content;return t.trimText&&(e=e.trim()),{...i,content:e}}function Ft(i){const t=[];let e=null;for(const n of i)n.type===d.TEXT?e?e=x(e.content+n.content,e.start,n.end):e=n:(e&&(t.push(e),e=null),t.push(n));return e&&t.push(e),t}function Dt(i){return i.filter(t=>t.type===d.TEXT?t.content.trim().length>0:!0)}function Pt(i){return i.content.trim().length===0}function X(i){let t=1;return i.type===d.ROOT?i.children.forEach(e=>{t+=X(e)}):(i.type===d.ELEMENT||i.type===d.FRAGMENT)&&i.children.forEach(e=>{t+=X(e)}),t}function V(i,t){let e=i;return e=st(e),(t==null?void 0:t.optimize)!==!1&&(e=ht(e,t==null?void 0:t.optimizeOptions)),e}function U(i,t){const e={templateFactory:"h",templateFragmentFactory:"Fragment",...t};return xt(i.children,e)}function xt(i,t){const e=i.map(n=>j(n,t)).filter(n=>n!=="");return e.length===0?"null":e.length===1?e[0]:`[${e.join(", ")}]`}function j(i,t){switch(i.type){case d.ELEMENT:return $t(i,t);case d.FRAGMENT:return Gt(i,t);case d.TEXT:return Wt(i);case d.INTERPOLATION:return Xt(i,t);case d.COMMENT:return"";default:return""}}function $t(i,t){const e=ot(i);if(e)return Ut(e,t);const n=i.directives.find(r=>r.type===d.DIRECTIVE_FOR);return n?Vt(i,n,t):C(i,t)}function C(i,t){const e=t.templateFactory,n=i.isComponent?i.tag:`'${i.tag}'`,r=Mt(i,t),s=i.children.map(o=>j(o,t)).filter(o=>o!=="");return s.length===0?`${e}(${n}, ${r})`:`${e}(${n}, ${r}, ${s.join(", ")})`}function Gt(i,t){const e=t.templateFactory,n=t.templateFragmentFactory,r=i.children.map(s=>j(s,t)).filter(s=>s!=="");return r.length===0?`${e}(${n}, null)`:`${e}(${n}, null, ${r.join(", ")})`}function Mt(i,t){return i.attributes.length===0?"null":`{ ${i.attributes.map(n=>{const r=n.name;let s;return n.value===null?s="true":typeof n.value=="string"?s=`'${n.value.replace(/'/g,"\\'")}'`:s=ut(n.value.expression,t),`${r}: ${s}`}).join(", ")} }`}function Wt(i){return`'${i.content.replace(/\\/g,"\\\\").replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/'/g,"\\'")}'`}function Xt(i,t){return ut(i.expression,t)}function Vt(i,t,e){const{item:n,index:r,list:s}=t,o={...i,directives:i.directives.filter(h=>h.type!==d.DIRECTIVE_FOR)},a=C(o,e);return r?`(${s}).map((${n}, ${r}) => ${a})`:`(${s}).map(${n} => ${a})`}function Ut(i,t){const e=M(i.if,d.DIRECTIVE_IF);if(!e)return C(i.if,t);const n={...i.if,directives:i.if.directives.filter(s=>s.type!==d.DIRECTIVE_IF)};let r=`(${e.condition}) ? ${C(n,t)}`;for(const s of i.elseIfs||[]){const o=M(s,d.DIRECTIVE_ELSE_IF);if(!o)continue;const a={...s,directives:s.directives.filter(h=>h.type!==d.DIRECTIVE_ELSE_IF)};r+=` : (${o.condition}) ? ${C(a,t)}`}if(i.else){const s={...i.else,directives:i.else.directives.filter(o=>o.type!==d.DIRECTIVE_ELSE)};r+=` : ${C(s,t)}`}else r+=" : null";return r}function jt(i){return i}const lt=i=>i>=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122||i===95||i===36,zt=(i,t)=>{if(i[t]!=="<")return!1;const e=i.charCodeAt(t+1);if(Number.isNaN(e)||!(e===47||e===62||e===33||lt(e)))return!1;let r=t-1;for(;r>=0;){const s=i.charCodeAt(r);if(s===32||s===9||s===10||s===13){r--;continue}if(lt(s))return!1;break}return!0},O=(i,t,e)=>{let n=t+1;for(;n<i.length;){const r=i[n];if(r==="\\"){n+=2;continue}if(r===e)return n+1;n++}return i.length},b=(i,t)=>{let e=t+1;for(;e<i.length;){const n=i[e];if(n==="\\"){e+=2;continue}if(n==="`")return e+1;if(n==="$"&&i[e+1]==="{"){e=at(i,e+2);continue}e++}return i.length},y=(i,t)=>{let e=t;for(;e<i.length&&i[e]!=="\\n";)e++;return e},A=(i,t)=>{const e=i.indexOf("*/",t);return e===-1?i.length:e+2},Bt=(i,t)=>{const e=i.indexOf("-->",t);return e===-1?i.length:e+3},at=(i,t)=>{let e=1,n=t;for(;n<i.length;){const r=i[n];if(r==="\\"){n+=2;continue}if(r==="'"||r==='"'){n=O(i,n,r);continue}if(r==="`"){n=b(i,n);continue}if(r==="/"&&i[n+1]==="*"){n=A(i,n+2);continue}if(r==="/"&&i[n+1]==="/"){n=y(i,n+2);continue}if(r==="{"){e++,n++;continue}if(r==="}"){if(e--,n++,e===0)return n;continue}n++}return i.length},ct=(i,t,e)=>{let n=t;for(;n<i.length;){const r=i[n];if(r==="'"||r==='"'){n=O(i,n,r);continue}if(r==="`"){n=b(i,n);continue}if(r==="{"){n=at(i,n+1);continue}if(r==="/"&&i[n+1]==="*"){n=A(i,n+2);continue}if(r==="/"&&i[n+1]==="/"){n=y(i,n+2);continue}if(r===">"){const s=!e&&i[n-1]==="/";return{position:n+1,selfClosing:s}}n++}return null},Ht=(i,t)=>{const e=i.length;let n=t,r=0;for(;n<e;){const s=i[n];if(s==="'"||s==='"'){n=O(i,n,s);continue}if(s==="`"){n=b(i,n);continue}if(s==="/"&&i[n+1]==="*"){n=A(i,n+2);continue}if(s==="/"&&i[n+1]==="/"){n=y(i,n+2);continue}if(s==="<"){if(i.startsWith("<!--",n)){n=Bt(i,n+4);continue}if(i[n+1]==="/"){r--;const o=ct(i,n+2,!0);if(!o)return null;if(n=o.position,r===0)return{start:t,end:n,snippet:i.slice(t,n)};continue}else{r++;const o=ct(i,n+1,!1);if(!o)return null;if(n=o.position,o.selfClosing&&(r--,r===0))return{start:t,end:n,snippet:i.slice(t,n)};continue}}n++}return null},Qt=i=>{const t=[],e=i.length;let n=0;for(;n<e;){const r=i[n];if(r==="'"||r==='"'){n=O(i,n,r);continue}if(r==="`"){n=b(i,n);continue}if(r==="/"&&i[n+1]==="*"){n=A(i,n+2);continue}if(r==="/"&&i[n+1]==="/"){n=y(i,n+2);continue}if(r==="<"&&zt(i,n)){const s=Ht(i,n);if(s){t.push(s),n=s.end;continue}}n++}return t};function ut(i,t){if(!i.includes("<"))return i;const e=Qt(i);if(e.length===0)return i;let n="",r=0,s=!1;for(const o of e){let a=null;try{a=Kt(o.snippet,t)}catch{a=null}if(!a){n+=i.slice(r,o.end),r=o.end;continue}n+=i.slice(r,o.start)+a,r=o.end,s=!0}return n+=i.slice(r),s?n:i}function Kt(i,t){const e=P(i),n=G(e),r=V(n);return U(r,t)}function ft(i,t){try{const e=P(i),n=G(e),r=V(n,t==null?void 0:t.transform);return{code:U(r,t==null?void 0:t.generate),ast:r,errors:[]}}catch(e){const n=e;return{code:"",ast:null,errors:[{message:e instanceof Error?e.message:String(e),line:n.line??0,column:n.column??0}]}}}var Yt=44,Zt=59,dt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",pt=new Uint8Array(64),Jt=new Uint8Array(128);for(let i=0;i<dt.length;i++){const t=dt.charCodeAt(i);pt[i]=t,Jt[t]=i}function I(i,t,e){let n=t-e;n=n<0?-n<<1|1:n<<1;do{let r=n&31;n>>>=5,n>0&&(r|=32),i.write(pt[r])}while(n>0);return t}var gt=1024*16,Et=typeof TextDecoder<"u"?new TextDecoder:typeof Buffer<"u"?{decode(i){return Buffer.from(i.buffer,i.byteOffset,i.byteLength).toString()}}:{decode(i){let t="";for(let e=0;e<i.length;e++)t+=String.fromCharCode(i[e]);return t}},qt=class{constructor(){this.pos=0,this.out="",this.buffer=new Uint8Array(gt)}write(i){const{buffer:t}=this;t[this.pos++]=i,this.pos===gt&&(this.out+=Et.decode(t),this.pos=0)}flush(){const{buffer:i,out:t,pos:e}=this;return e>0?t+Et.decode(i.subarray(0,e)):t}};function te(i){const t=new qt;let e=0,n=0,r=0,s=0;for(let o=0;o<i.length;o++){const a=i[o];if(o>0&&t.write(Zt),a.length===0)continue;let h=0;for(let c=0;c<a.length;c++){const f=a[c];c>0&&t.write(Yt),h=I(t,f[0],h),f.length!==1&&(e=I(t,f[1],e),n=I(t,f[2],n),r=I(t,f[3],r),f.length!==4&&(s=I(t,f[4],s)))}}return t.flush()}class L{constructor(t){this.bits=t instanceof L?t.bits.slice():[]}add(t){this.bits[t>>5]|=1<<(t&31)}has(t){return!!(this.bits[t>>5]&1<<(t&31))}}class S{constructor(t,e,n){this.start=t,this.end=e,this.original=n,this.intro="",this.outro="",this.content=n,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(t){this.outro+=t}appendRight(t){this.intro=this.intro+t}clone(){const t=new S(this.start,this.end,this.original);return t.intro=this.intro,t.outro=this.outro,t.content=this.content,t.storeName=this.storeName,t.edited=this.edited,t}contains(t){return this.start<t&&t<this.end}eachNext(t){let e=this;for(;e;)t(e),e=e.next}eachPrevious(t){let e=this;for(;e;)t(e),e=e.previous}edit(t,e,n){return this.content=t,n||(this.intro="",this.outro=""),this.storeName=e,this.edited=!0,this}prependLeft(t){this.outro=t+this.outro}prependRight(t){this.intro=t+this.intro}reset(){this.intro="",this.outro="",this.edited&&(this.content=this.original,this.storeName=!1,this.edited=!1)}split(t){const e=t-this.start,n=this.original.slice(0,e),r=this.original.slice(e);this.original=n;const s=new S(t,this.end,r);return s.outro=this.outro,this.outro="",this.end=t,this.edited?(s.edit("",!1),this.content=""):this.content=n,s.next=this.next,s.next&&(s.next.previous=s),s.previous=this,this.next=s,s}toString(){return this.intro+this.content+this.outro}trimEnd(t){if(this.outro=this.outro.replace(t,""),this.outro.length)return!0;const e=this.content.replace(t,"");if(e.length)return e!==this.content&&(this.split(this.start+e.length).edit("",void 0,!0),this.edited&&this.edit(e,this.storeName,!0)),!0;if(this.edit("",void 0,!0),this.intro=this.intro.replace(t,""),this.intro.length)return!0}trimStart(t){if(this.intro=this.intro.replace(t,""),this.intro.length)return!0;const e=this.content.replace(t,"");if(e.length){if(e!==this.content){const n=this.split(this.end-e.length);this.edited&&n.edit(e,this.storeName,!0),this.edit("",void 0,!0)}return!0}else if(this.edit("",void 0,!0),this.outro=this.outro.replace(t,""),this.outro.length)return!0}}function ee(){return typeof globalThis<"u"&&typeof globalThis.btoa=="function"?i=>globalThis.btoa(unescape(encodeURIComponent(i))):typeof Buffer=="function"?i=>Buffer.from(i,"utf-8").toString("base64"):()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}const ne=ee();class ie{constructor(t){this.version=3,this.file=t.file,this.sources=t.sources,this.sourcesContent=t.sourcesContent,this.names=t.names,this.mappings=te(t.mappings),typeof t.x_google_ignoreList<"u"&&(this.x_google_ignoreList=t.x_google_ignoreList),typeof t.debugId<"u"&&(this.debugId=t.debugId)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+ne(this.toString())}}function re(i){const t=i.split(`
3
+ `),e=t.filter(s=>/^\t+/.test(s)),n=t.filter(s=>/^ {2,}/.test(s));if(e.length===0&&n.length===0)return null;if(e.length>=n.length)return" ";const r=n.reduce((s,o)=>{const a=/^ +/.exec(o)[0].length;return Math.min(a,s)},1/0);return new Array(r+1).join(" ")}function se(i,t){const e=i.split(/[/\\]/),n=t.split(/[/\\]/);for(e.pop();e[0]===n[0];)e.shift(),n.shift();if(e.length){let r=e.length;for(;r--;)e[r]=".."}return e.concat(n).join("/")}const oe=Object.prototype.toString;function he(i){return oe.call(i)==="[object Object]"}function mt(i){const t=i.split(`
4
+ `),e=[];for(let n=0,r=0;n<t.length;n++)e.push(r),r+=t[n].length+1;return function(r){let s=0,o=e.length;for(;s<o;){const c=s+o>>1;r<e[c]?o=c:s=c+1}const a=s-1,h=r-e[a];return{line:a,column:h}}}const le=/\w/;class ae{constructor(t){this.hires=t,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null}addEdit(t,e,n,r){if(e.length){const s=e.length-1;let o=e.indexOf(`
5
+ `,0),a=-1;for(;o>=0&&s>o;){const c=[this.generatedCodeColumn,t,n.line,n.column];r>=0&&c.push(r),this.rawSegments.push(c),this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,a=o,o=e.indexOf(`
6
+ `,o+1)}const h=[this.generatedCodeColumn,t,n.line,n.column];r>=0&&h.push(r),this.rawSegments.push(h),this.advance(e.slice(a+1))}else this.pending&&(this.rawSegments.push(this.pending),this.advance(e));this.pending=null}addUneditedChunk(t,e,n,r,s){let o=e.start,a=!0,h=!1;for(;o<e.end;){if(n[o]===`
7
+ `)r.line+=1,r.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,a=!0,h=!1;else{if(this.hires||a||s.has(o)){const c=[this.generatedCodeColumn,t,r.line,r.column];this.hires==="boundary"?le.test(n[o])?h||(this.rawSegments.push(c),h=!0):(this.rawSegments.push(c),h=!1):this.rawSegments.push(c)}r.column+=1,this.generatedCodeColumn+=1,a=!1}o+=1}this.pending=null}advance(t){if(!t)return;const e=t.split(`
8
+ `);if(e.length>1){for(let n=0;n<e.length-1;n++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=e[e.length-1].length}}const N=`
9
+ `,T={insertLeft:!1,insertRight:!1,storeName:!1};class z{constructor(t,e={}){const n=new S(0,t.length,t);Object.defineProperties(this,{original:{writable:!0,value:t},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:n},lastChunk:{writable:!0,value:n},lastSearchedChunk:{writable:!0,value:n},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:e.filename},indentExclusionRanges:{writable:!0,value:e.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new L},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:void 0},ignoreList:{writable:!0,value:e.ignoreList},offset:{writable:!0,value:e.offset||0}}),this.byStart[0]=n,this.byEnd[t.length]=n}addSourcemapLocation(t){this.sourcemapLocations.add(t)}append(t){if(typeof t!="string")throw new TypeError("outro content must be a string");return this.outro+=t,this}appendLeft(t,e){if(t=t+this.offset,typeof e!="string")throw new TypeError("inserted content must be a string");this._split(t);const n=this.byEnd[t];return n?n.appendLeft(e):this.intro+=e,this}appendRight(t,e){if(t=t+this.offset,typeof e!="string")throw new TypeError("inserted content must be a string");this._split(t);const n=this.byStart[t];return n?n.appendRight(e):this.outro+=e,this}clone(){const t=new z(this.original,{filename:this.filename,offset:this.offset});let e=this.firstChunk,n=t.firstChunk=t.lastSearchedChunk=e.clone();for(;e;){t.byStart[n.start]=n,t.byEnd[n.end]=n;const r=e.next,s=r&&r.clone();s&&(n.next=s,s.previous=n,n=s),e=r}return t.lastChunk=n,this.indentExclusionRanges&&(t.indentExclusionRanges=this.indentExclusionRanges.slice()),t.sourcemapLocations=new L(this.sourcemapLocations),t.intro=this.intro,t.outro=this.outro,t}generateDecodedMap(t){t=t||{};const e=0,n=Object.keys(this.storedNames),r=new ae(t.hires),s=mt(this.original);return this.intro&&r.advance(this.intro),this.firstChunk.eachNext(o=>{const a=s(o.start);o.intro.length&&r.advance(o.intro),o.edited?r.addEdit(e,o.content,a,o.storeName?n.indexOf(o.original):-1):r.addUneditedChunk(e,o,this.original,a,this.sourcemapLocations),o.outro.length&&r.advance(o.outro)}),this.outro&&r.advance(this.outro),{file:t.file?t.file.split(/[/\\]/).pop():void 0,sources:[t.source?se(t.file||"",t.source):t.file||""],sourcesContent:t.includeContent?[this.original]:void 0,names:n,mappings:r.raw,x_google_ignoreList:this.ignoreList?[e]:void 0}}generateMap(t){return new ie(this.generateDecodedMap(t))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=re(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?" ":this.indentStr}indent(t,e){const n=/^[^\r\n]/gm;if(he(t)&&(e=t,t=void 0),t===void 0&&(this._ensureindentStr(),t=this.indentStr||" "),t==="")return this;e=e||{};const r={};e.exclude&&(typeof e.exclude[0]=="number"?[e.exclude]:e.exclude).forEach(f=>{for(let p=f[0];p<f[1];p+=1)r[p]=!0});let s=e.indentStart!==!1;const o=c=>s?`${t}${c}`:(s=!0,c);this.intro=this.intro.replace(n,o);let a=0,h=this.firstChunk;for(;h;){const c=h.end;if(h.edited)r[a]||(h.content=h.content.replace(n,o),h.content.length&&(s=h.content[h.content.length-1]===`
10
+ `));else for(a=h.start;a<c;){if(!r[a]){const f=this.original[a];f===`
11
+ `?s=!0:f!=="\r"&&s&&(s=!1,a===h.start||(this._splitChunk(h,a),h=h.next),h.prependRight(t))}a+=1}a=h.end,h=h.next}return this.outro=this.outro.replace(n,o),this}insert(){throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)")}insertLeft(t,e){return T.insertLeft||(console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"),T.insertLeft=!0),this.appendLeft(t,e)}insertRight(t,e){return T.insertRight||(console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"),T.insertRight=!0),this.prependRight(t,e)}move(t,e,n){if(t=t+this.offset,e=e+this.offset,n=n+this.offset,n>=t&&n<=e)throw new Error("Cannot move a selection inside itself");this._split(t),this._split(e),this._split(n);const r=this.byStart[t],s=this.byEnd[e],o=r.previous,a=s.next,h=this.byStart[n];if(!h&&s===this.lastChunk)return this;const c=h?h.previous:this.lastChunk;return o&&(o.next=a),a&&(a.previous=o),c&&(c.next=r),h&&(h.previous=s),r.previous||(this.firstChunk=s.next),s.next||(this.lastChunk=r.previous,this.lastChunk.next=null),r.previous=c,s.next=h||null,c||(this.firstChunk=r),h||(this.lastChunk=s),this}overwrite(t,e,n,r){return r=r||{},this.update(t,e,n,{...r,overwrite:!r.contentOnly})}update(t,e,n,r){if(t=t+this.offset,e=e+this.offset,typeof n!="string")throw new TypeError("replacement content must be a string");if(this.original.length!==0){for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length}if(e>this.original.length)throw new Error("end is out of bounds");if(t===e)throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");this._split(t),this._split(e),r===!0&&(T.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),T.storeName=!0),r={storeName:!0});const s=r!==void 0?r.storeName:!1,o=r!==void 0?r.overwrite:!1;if(s){const c=this.original.slice(t,e);Object.defineProperty(this.storedNames,c,{writable:!0,value:!0,enumerable:!0})}const a=this.byStart[t],h=this.byEnd[e];if(a){let c=a;for(;c!==h;){if(c.next!==this.byStart[c.end])throw new Error("Cannot overwrite across a split point");c=c.next,c.edit("",!1)}a.edit(n,s,!o)}else{const c=new S(t,e,"").edit(n,s);h.next=c,c.previous=h}return this}prepend(t){if(typeof t!="string")throw new TypeError("outro content must be a string");return this.intro=t+this.intro,this}prependLeft(t,e){if(t=t+this.offset,typeof e!="string")throw new TypeError("inserted content must be a string");this._split(t);const n=this.byEnd[t];return n?n.prependLeft(e):this.intro=e+this.intro,this}prependRight(t,e){if(t=t+this.offset,typeof e!="string")throw new TypeError("inserted content must be a string");this._split(t);const n=this.byStart[t];return n?n.prependRight(e):this.outro=e+this.outro,this}remove(t,e){if(t=t+this.offset,e=e+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length}if(t===e)return this;if(t<0||e>this.original.length)throw new Error("Character is out of bounds");if(t>e)throw new Error("end must be greater than start");this._split(t),this._split(e);let n=this.byStart[t];for(;n;)n.intro="",n.outro="",n.edit(""),n=e>n.end?this.byStart[n.end]:null;return this}reset(t,e){if(t=t+this.offset,e=e+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length}if(t===e)return this;if(t<0||e>this.original.length)throw new Error("Character is out of bounds");if(t>e)throw new Error("end must be greater than start");this._split(t),this._split(e);let n=this.byStart[t];for(;n;)n.reset(),n=e>n.end?this.byStart[n.end]:null;return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let t=this.lastChunk;do{if(t.outro.length)return t.outro[t.outro.length-1];if(t.content.length)return t.content[t.content.length-1];if(t.intro.length)return t.intro[t.intro.length-1]}while(t=t.previous);return this.intro.length?this.intro[this.intro.length-1]:""}lastLine(){let t=this.outro.lastIndexOf(N);if(t!==-1)return this.outro.substr(t+1);let e=this.outro,n=this.lastChunk;do{if(n.outro.length>0){if(t=n.outro.lastIndexOf(N),t!==-1)return n.outro.substr(t+1)+e;e=n.outro+e}if(n.content.length>0){if(t=n.content.lastIndexOf(N),t!==-1)return n.content.substr(t+1)+e;e=n.content+e}if(n.intro.length>0){if(t=n.intro.lastIndexOf(N),t!==-1)return n.intro.substr(t+1)+e;e=n.intro+e}}while(n=n.previous);return t=this.intro.lastIndexOf(N),t!==-1?this.intro.substr(t+1)+e:this.intro+e}slice(t=0,e=this.original.length-this.offset){if(t=t+this.offset,e=e+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length}let n="",r=this.firstChunk;for(;r&&(r.start>t||r.end<=t);){if(r.start<e&&r.end>=e)return n;r=r.next}if(r&&r.edited&&r.start!==t)throw new Error(`Cannot use replaced character ${t} as slice start anchor.`);const s=r;for(;r;){r.intro&&(s!==r||r.start===t)&&(n+=r.intro);const o=r.start<e&&r.end>=e;if(o&&r.edited&&r.end!==e)throw new Error(`Cannot use replaced character ${e} as slice end anchor.`);const a=s===r?t-r.start:0,h=o?r.content.length+e-r.end:r.content.length;if(n+=r.content.slice(a,h),r.outro&&(!o||r.end===e)&&(n+=r.outro),o)break;r=r.next}return n}snip(t,e){const n=this.clone();return n.remove(0,t),n.remove(e,n.original.length),n}_split(t){if(this.byStart[t]||this.byEnd[t])return;let e=this.lastSearchedChunk,n=e;const r=t>e.end;for(;e;){if(e.contains(t))return this._splitChunk(e,t);if(e=r?this.byStart[e.end]:this.byEnd[e.start],e===n)return;n=e}}_splitChunk(t,e){if(t.edited&&t.content.length){const r=mt(this.original)(e);throw new Error(`Cannot split a chunk that has already been edited (${r.line}:${r.column} – "${t.original}")`)}const n=t.split(e);return this.byEnd[e]=t,this.byStart[e]=n,this.byEnd[n.end]=n,t===this.lastChunk&&(this.lastChunk=n),this.lastSearchedChunk=t,!0}toString(){let t=this.intro,e=this.firstChunk;for(;e;)t+=e.toString(),e=e.next;return t+this.outro}isEmpty(){let t=this.firstChunk;do if(t.intro.length&&t.intro.trim()||t.content.length&&t.content.trim()||t.outro.length&&t.outro.trim())return!1;while(t=t.next);return!0}length(){let t=this.firstChunk,e=0;do e+=t.intro.length+t.content.length+t.outro.length;while(t=t.next);return e}trimLines(){return this.trim("[\\r\\n]")}trim(t){return this.trimStart(t).trimEnd(t)}trimEndAborted(t){const e=new RegExp((t||"\\s")+"+$");if(this.outro=this.outro.replace(e,""),this.outro.length)return!0;let n=this.lastChunk;do{const r=n.end,s=n.trimEnd(e);if(n.end!==r&&(this.lastChunk===n&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),s)return!0;n=n.previous}while(n);return!1}trimEnd(t){return this.trimEndAborted(t),this}trimStartAborted(t){const e=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(e,""),this.intro.length)return!0;let n=this.firstChunk;do{const r=n.end,s=n.trimStart(e);if(n.end!==r&&(n===this.lastChunk&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),s)return!0;n=n.next}while(n);return!1}trimStart(t){return this.trimStartAborted(t),this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(t,e){function n(s,o){return typeof e=="string"?e.replace(/\$(\$|&|\d+)/g,(a,h)=>h==="$"?"$":h==="&"?s[0]:+h<s.length?s[+h]:`$${h}`):e(...s,s.index,o,s.groups)}function r(s,o){let a;const h=[];for(;a=s.exec(o);)h.push(a);return h}if(t.global)r(t,this.original).forEach(o=>{if(o.index!=null){const a=n(o,this.original);a!==o[0]&&this.overwrite(o.index,o.index+o[0].length,a)}});else{const s=this.original.match(t);if(s&&s.index!=null){const o=n(s,this.original);o!==s[0]&&this.overwrite(s.index,s.index+s[0].length,o)}}return this}_replaceString(t,e){const{original:n}=this,r=n.indexOf(t);return r!==-1&&(typeof e=="function"&&(e=e(t,r,n)),t!==e&&this.overwrite(r,r+t.length,e)),this}replace(t,e){return typeof t=="string"?this._replaceString(t,e):this._replaceRegexp(t,e)}_replaceAllString(t,e){const{original:n}=this,r=t.length;for(let s=n.indexOf(t);s!==-1;s=n.indexOf(t,s+r)){const o=n.slice(s,s+r);let a=e;typeof e=="function"&&(a=e(o,s,n)),o!==a&&this.overwrite(s,s+r,a)}return this}replaceAll(t,e){if(typeof t=="string")return this._replaceAllString(t,e);if(!t.global)throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument");return this._replaceRegexp(t,e)}}const v=new Set;for(let i=48;i<=57;i++)v.add(i);for(let i=65;i<=90;i++)v.add(i);for(let i=97;i<=122;i++)v.add(i);v.add(95),v.add(36);const Ct=i=>v.has(i),ce=(i,t)=>{if(i[t]!=="<")return!1;const e=i.charCodeAt(t+1);if(Number.isNaN(e)||!(e===47||e===62||e===33||Ct(e)))return!1;let r=t-1;for(;r>=0;){const s=i.charCodeAt(r);if(s===32||s===9||s===10||s===13){r--;continue}if(Ct(s))return!1;break}return!0},B=(i,t,e)=>{let n=t+1;for(;n<i.length;){const r=i[n];if(r==="\\"){n+=2;continue}if(r===e)return n+1;n++}return i.length},Tt=(i,t)=>{let e=t+1;for(;e<i.length;){const n=i[e];if(n==="\\"){e+=2;continue}if(n==="`")return e+1;if(n==="$"&&i[e+1]==="{"){const r=H(i,e+2);if(r==null)return i.length;e=r;continue}e++}return i.length},F=(i,t)=>{let e=t;for(;e<i.length&&i[e]!==`
12
+ `;)e++;return e},D=(i,t)=>{const e=i.indexOf("*/",t);return e===-1?i.length:e+2},ue=(i,t)=>{const e=i.indexOf("-->",t);return e===-1?i.length:e+3},H=(i,t)=>{let e=1,n=t;for(;n<i.length;){const r=i[n];if(r==="\\"){n+=2;continue}if(r==="'"||r==='"'){n=B(i,n,r);continue}if(r==="`"){n=Tt(i,n);continue}if(r==="/"&&i[n+1]==="*"){n=D(i,n+2);continue}if(r==="/"&&i[n+1]==="/"){n=F(i,n+2);continue}if(r==="{"){e++,n++;continue}if(r==="}"){if(e--,n++,e===0)return n;continue}n++}return null},vt=(i,t,e)=>{let n=t;for(;n<i.length;){const r=i[n];if(r==="'"||r==='"'){n=B(i,n,r);continue}if(r==="{"){const s=H(i,n+1);if(s==null)return null;n=s;continue}if(r==="/"&&i[n+1]==="*"){n=D(i,n+2);continue}if(r==="/"&&i[n+1]==="/"){n=F(i,n+2);continue}if(r===">"){const s=!e&&i[n-1]==="/";return{position:n+1,selfClosing:s}}n++}return null},fe=(i,t)=>{const e=i.length;let n=t,r=0;for(;n<e;){const s=i[n];if(s==="/"&&i[n+1]==="*"){n=D(i,n+2);continue}if(s==="/"&&i[n+1]==="/"){n=F(i,n+2);continue}if(s==="{"){const o=H(i,n+1);if(o!=null){n=o;continue}}if(s==="<"){if(i.startsWith("<!--",n)){n=ue(i,n+4);continue}if(i[n+1]==="/"){r--;const o=vt(i,n+2,!0);if(!o)return null;if(n=o.position,r===0)return{start:t,end:n,snippet:i.slice(t,n)};continue}else{r++;const o=vt(i,n+1,!1);if(!o)return null;if(n=o.position,o.selfClosing&&(r--,r===0))return{start:t,end:n,snippet:i.slice(t,n)};continue}}n++}return null},wt=i=>{const t=[],e=i.length;let n=0;for(;n<e;){const r=i[n];if(r==="'"||r==='"'){n=B(i,n,r);continue}if(r==="`"){n=Tt(i,n);continue}if(r==="/"&&i[n+1]==="*"){n=D(i,n+2);continue}if(r==="/"&&i[n+1]==="/"){n=F(i,n+2);continue}if(r==="<"&&ce(i,n)){const s=fe(i,n);if(s){t.push(s),n=s.end;continue}}n++}return t},de=(i,t={})=>{const e=wt(i);if(e.length===0)return{code:i,map:null,transformed:!1,errors:[],matches:[]};const n=new z(i),r=[];let s=!1;for(const h of e){const c=ft(h.snippet,t.compileOptions);if(c.errors.length>0||!c.code){for(const f of c.errors)r.push({match:h,error:f});continue}n.overwrite(h.start,h.end,c.code),s=!0}if(!s)return{code:i,map:null,transformed:!1,errors:r,matches:e};const o=n.toString();let a=null;if(t.generateSourceMap){const h=t.source?{source:t.source,hires:!0}:{hires:!0};a=n.generateMap(h)}return{code:o,map:a,transformed:!0,errors:r,matches:e}};u.Lexer=K,u.NodeType=d,u.Parser=rt,u.TokenType=l,u.compile=ft,u.countNodes=X,u.createAttributeNode=_,u.createCommentNode=q,u.createDirectiveElseIfNode=et,u.createDirectiveElseNode=nt,u.createDirectiveForNode=it,u.createDirectiveIfNode=tt,u.createElementNode=k,u.createFragmentNode=Z,u.createInterpolationNode=J,u.createPosition=m,u.createRootNode=Y,u.createTextNode=x,u.createToken=g,u.formatCode=jt,u.generate=U,u.getConditionalGroup=ot,u.getDirective=M,u.hasDirective=Ot,u.isCommentNode=_t,u.isDirective=Rt,u.isElementNode=It,u.isFragmentNode=St,u.isInterpolationNode=kt,u.isTextNode=Nt,u.isWhitespaceOnly=Pt,u.optimize=ht,u.parse=G,u.scanTemplates=wt,u.tokenize=P,u.transform=V,u.transformDirectives=st,u.transformDocument=de,u.transformTree=R,u.walk=$,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});
13
+ //# sourceMappingURL=index.umd.cjs.map