/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ var vo=Object.create;var Ir=Object.defineProperty;var bo=Object.getOwnPropertyDescriptor;var wo=Object.getOwnPropertyNames;var ko=Object.getPrototypeOf,jo=Object.prototype.hasOwnProperty;var ga=e=>Ir(e,"__esModule",{value:!0});var To=(e,t)=>{ga(e);for(var r in t)Ir(e,r,{get:t[r],enumerable:!0})},Eo=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of wo(t))!jo.call(e,i)&&i!=="default"&&Ir(e,i,{get:()=>t[i],enumerable:!(r=bo(t,i))||r.enumerable});return e},$=e=>Eo(ga(Ir(e!=null?vo(ko(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var Aa=(()=>{for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:t*4-205]=t;return r=>{for(var i=r.length,n=new Uint8Array((i-(r[i-1]=="=")-(r[i-2]=="="))*3/4|0),a=0,s=0;a>4,n[s++]=l<<4|h>>2,n[s++]=h<<6|m}return n}})();To(exports,{default:()=>ta});var er=$(require("obsidian"));var ri=$(require("obsidian"));var te=function(){function e(){}return e.explainIfInvalidTSDocTagName=function(t){if(t[0]!=="@")return'A TSDoc tag name must start with an "@" symbol';if(!e._tsdocTagNameRegExp.test(t))return"A TSDoc tag name must start with a letter and contain only letters and numbers"},e.validateTSDocTagName=function(t){var r=e.explainIfInvalidTSDocTagName(t);if(r)throw new Error(r)},e.explainIfInvalidLinkUrl=function(t){if(t.length===0)return"The URL cannot be empty";if(!e._urlSchemeRegExp.test(t))return'An @link URL must begin with a scheme comprised only of letters and numbers followed by "://". (For general URLs, use an HTML "" tag instead.)';if(!e._urlSchemeAfterRegExp.test(t))return'An @link URL must have at least one character after "://"'},e.explainIfInvalidHtmlName=function(t){if(!e._htmlNameRegExp.test(t))return"An HTML name must be an ASCII letter followed by zero or more letters, digits, or hyphens"},e.validateHtmlName=function(t){var r=e.explainIfInvalidHtmlName(t);if(r)throw new Error(r)},e.explainIfInvalidPackageName=function(t){if(t.length===0)return"The package name cannot be an empty string";if(!e._validPackageNameRegExp.test(t))return"The package name ".concat(JSON.stringify(t)," is not a valid package name")},e.explainIfInvalidImportPath=function(t,r){if(t.length>0){if(t.indexOf("//")>=0)return'An import path must not contain "//"';if(t[t.length-1]==="/")return'An import path must not end with "/"';if(!r&&t[0]==="/")return'An import path must not start with "/" unless prefixed by a package name'}},e.isSystemSelector=function(t){return e._systemSelectors.has(t)},e.explainIfInvalidUnquotedIdentifier=function(t){if(t.length===0)return"The identifier cannot be an empty string";if(e._identifierBadCharRegExp.test(t))return"The identifier cannot non-word characters";if(e._identifierNumberStartRegExp.test(t))return"The identifier must not start with a number"},e.explainIfInvalidUnquotedMemberIdentifier=function(t){var r=e.explainIfInvalidUnquotedIdentifier(t);if(r!==void 0)return r;if(e.isSystemSelector(t))return'The identifier "'.concat(t,'" must be quoted because it is a TSDoc system selector name')},e._tsdocTagNameRegExp=/^@[a-z][a-z0-9]*$/i,e._urlSchemeRegExp=/^[a-z][a-z0-9]*\:\/\//i,e._urlSchemeAfterRegExp=/^[a-z][a-z0-9]*\:\/\/./i,e._htmlNameRegExp=/^[a-z]+[a-z0-9\-]*$/i,e._identifierBadCharRegExp=/[^a-z0-9_$]/i,e._identifierNumberStartRegExp=/^[0-9]/,e._validPackageNameRegExp=/^(?:@[a-z0-9\-_\.]+\/)?[a-z0-9\-_\.]+$/i,e._systemSelectors=new Set(["instance","static","constructor","class","enum","function","interface","namespace","type","variable"]),e}();var Di=function(){function e(){this._docNodeDefinitionsByKind=new Map,this._docNodeDefinitionsByConstructor=new Map}return e.prototype.registerDocNodes=function(t,r){var i=te.explainIfInvalidPackageName(t);if(i)throw new Error("Invalid NPM package name: "+i);for(var n=0,a=r;n0&&n.appendNodes(i),n}return Object.defineProperty(t.prototype,"nodes",{get:function(){return this._nodes},enumerable:!1,configurable:!0}),t.prototype.appendNode=function(r){if(!this.configuration.docNodeManager.isAllowedChild(this.kind,r.kind))throw new Error("The TSDocConfiguration does not allow a ".concat(this.kind," node to")+" contain a node of type ".concat(r.kind));this._nodes.push(r)},t.prototype.appendNodes=function(r){for(var i=0,n=r;i0){var n=this.nodes[this.nodes.length-1];n.kind===g.Paragraph&&(i=n)}i||(i=new We({configuration:this.configuration}),this.appendNode(i)),i.appendNode(r)},t.prototype.appendNodesInParagraph=function(r){for(var i=0,n=r;i1){var t=this._chunks.join("");this._chunks.length=1,this._chunks[0]=t}return this._chunks[0]},e}();var ya=function(){function e(){}return e.transform=function(t){for(var r=[],i=!1,n=[],a=[],s=!1,c=0,l=t.nodes;c0&&(i&&(n.push(" "),i=!1),n.push(O),a.push(h),s=!0),F&&s&&(i=!0);break;case g.SoftBreak:s&&(i=!0),a.push(h);break;default:i&&(n.push(" "),i=!1),n.length>0&&(r.push(new Me({configuration:t.configuration,text:n.join("")})),n.length=0,a.length=0),r.push(h),s=!0}}n.length>0&&(r.push(new Me({configuration:t.configuration,text:n.join("")})),n.length=0,a.length=0);var U=new We({configuration:t.configuration});return U.appendNodes(r),U},e}();var Li=function(){function e(){}return e.trimSpacesInParagraph=function(t){return ya.transform(t)},e}();var Ri=function(e,t,r){if(r||arguments.length===2)for(var i=0,n=t.length,a;i0&&(this._ensureLineSkipped(),this._renderNodes(s.modifierTagSet.nodes));break;case g.DeclarationReference:var c=t;this._writeContent(c.packageName),this._writeContent(c.importPath),(c.packageName!==void 0||c.importPath!==void 0)&&this._writeContent("#"),this._renderNodes(c.memberReferences);break;case g.ErrorText:var l=t;this._writeContent(l.text);break;case g.EscapedText:var h=t;this._writeContent(h.encodedText);break;case g.FencedCode:var m=t;this._ensureAtStartOfLine(),this._writeContent("```"),this._writeContent(m.language),this._writeNewline(),this._writeContent(m.code),this._writeContent("```"),this._writeNewline(),this._writeNewline();break;case g.HtmlAttribute:var _=t;this._writeContent(_.name),this._writeContent(_.spacingAfterName),this._writeContent("="),this._writeContent(_.spacingAfterEquals),this._writeContent(_.value),this._writeContent(_.spacingAfterValue);break;case g.HtmlEndTag:var k=t;this._writeContent("");break;case g.HtmlStartTag:var F=t;this._writeContent("<"),this._writeContent(F.name),this._writeContent(F.spacingAfterName);for(var O=F.spacingAfterName===void 0||F.spacingAfterName.length===0,U=0,P=F.htmlAttributes;U":">");break;case g.InheritDocTag:var xe=t;this._renderInlineTag(xe,function(){xe.declarationReference&&(r._writeContent(" "),r._renderNode(xe.declarationReference))});break;case g.InlineTag:var ye=t;this._renderInlineTag(ye,function(){ye.tagContent.length>0&&(r._writeContent(" "),r._writeContent(ye.tagContent))});break;case g.LinkTag:var re=t;this._renderInlineTag(re,function(){(re.urlDestination!==void 0||re.codeDestination!==void 0)&&(re.urlDestination!==void 0?(r._writeContent(" "),r._writeContent(re.urlDestination)):re.codeDestination!==void 0&&(r._writeContent(" "),r._renderNode(re.codeDestination))),re.linkText!==void 0&&(r._writeContent(" "),r._writeContent("|"),r._writeContent(" "),r._writeContent(re.linkText))});break;case g.MemberIdentifier:var _t=t;_t.hasQuotes?(this._writeContent('"'),this._writeContent(_t.identifier),this._writeContent('"')):this._writeContent(_t.identifier);break;case g.MemberReference:var Ie=t;Ie.hasDot&&this._writeContent("."),Ie.selector&&this._writeContent("("),Ie.memberSymbol?this._renderNode(Ie.memberSymbol):this._renderNode(Ie.memberIdentifier),Ie.selector&&(this._writeContent(":"),this._renderNode(Ie.selector),this._writeContent(")"));break;case g.MemberSelector:var wi=t;this._writeContent(wi.selector);break;case g.MemberSymbol:var wr=t;this._writeContent("["),this._renderNode(wr.symbolReference),this._writeContent("]");break;case g.Section:var ki=t;this._renderNodes(ki.nodes);break;case g.Paragraph:var tr=Li.trimSpacesInParagraph(t);tr.nodes.length>0&&(this._hangingParagraph?this._hangingParagraph=!1:this._ensureLineSkipped(),this._renderNodes(tr.nodes),this._writeNewline());break;case g.ParamBlock:var x=t;this._ensureLineSkipped(),this._renderNode(x.blockTag),this._writeContent(" "),this._writeContent(x.parameterName),this._writeContent(" - "),this._hangingParagraph=!0,this._renderNode(x.content),this._hangingParagraph=!1;break;case g.ParamCollection:var I=t;this._renderNodes(I.blocks);break;case g.PlainText:var d=t;this._writeContent(d.text);break}},e.prototype._renderInlineTag=function(t,r){this._writeContent("{"),this._writeContent(t.tagName),r(),this._writeContent("}")},e.prototype._renderNodes=function(t){for(var r=0,i=t;r1){for(var i=!0,n=0,a=r;n0?this.params:void 0,this.typeParams.count>0?this.typeParams:void 0,this.returnsBlock],this.customBlocks,!0),this.seeBlocks,!0),[this.inheritDocTag],!1),this.modifierTagSet.nodes,!0)},t.prototype.emitAsTsdoc=function(){var r=new Je,i=new Qe;return i.renderComment(r,this),r.toString()},t}(j);var qo=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(i[a]=n[a])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function i(){this.constructor=t}t.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}(),Lo=function(e,t,r){if(r||arguments.length===2)for(var i=0,n=t.length,a;i=r},e._scanTextContent=function(t,r,i){for(var n=0,a=t;n=r||(i+=e._scanTextContent(s.getChildNodes(),r,i),i>=r))break}return i},e._countNonSpaceCharacters=function(t){for(var r=0,i=t.length,n=0;nthis.buffer.length)return{line:0,column:0};for(var r=1,i=1,n=0;nthis.buffer.length)throw new Error("TextRange.pos cannot exceed the associated text buffer length");if(this.end>this.buffer.length)throw new Error("TextRange.end cannot exceed the associated text buffer length")},e.empty=new e("",0,0),e}();var pr=function(){function e(t){this.messageId=t.messageId,this.unformattedText=t.messageText,this.textRange=t.textRange,this.tokenSequence=t.tokenSequence,this.docNode=t.docNode,this._text=void 0}return e._formatMessageText=function(t,r){if(t||(t="An unknown error occurred"),r.pos!==0||r.end!==0){var i=r.getLocation(r.pos);if(i.line)return"(".concat(i.line,",").concat(i.column,"): ")+t}return t},Object.defineProperty(e.prototype,"text",{get:function(){return this._text===void 0&&(this._text=e._formatMessageText(this.unformattedText,this.textRange)),this._text},enumerable:!1,configurable:!0}),e.prototype.toString=function(){return this.text},e}();var Vi=function(){function e(){this._messages=[]}return Object.defineProperty(e.prototype,"messages",{get:function(){return this._messages},enumerable:!1,configurable:!0}),e.prototype.addMessage=function(t){this._messages.push(t)},e.prototype.addMessageForTextRange=function(t,r,i){this.addMessage(new pr({messageId:t,messageText:r,textRange:i}))},e.prototype.addMessageForTokenSequence=function(t,r,i,n){this.addMessage(new pr({messageId:t,messageText:r,textRange:i.getContainingTextRange(),tokenSequence:i,docNode:n}))},e.prototype.addMessageForDocErrorText=function(t){var r;t.textExcerpt?r=t.textExcerpt:r=t.errorLocation,this.addMessage(new pr({messageId:t.messageId,messageText:t.errorMessage,textRange:r.getContainingTextRange(),tokenSequence:r,docNode:t}))},e}();var Hi=function(){function e(t,r){this.commentRange=Le.empty,this.lines=[],this.tokens=[],this.configuration=t,this.sourceRange=r,this.docComment=new Mr({configuration:this.configuration}),this.log=new Vi}return e}();var ut=function(){function e(t){this.parserContext=t.parserContext,this._startIndex=t.startIndex,this._endIndex=t.endIndex,this._validateBounds()}return e.createEmpty=function(t){return new e({parserContext:t,startIndex:0,endIndex:0})},Object.defineProperty(e.prototype,"startIndex",{get:function(){return this._startIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"endIndex",{get:function(){return this._endIndex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"tokens",{get:function(){return this.parserContext.tokens.slice(this._startIndex,this._endIndex)},enumerable:!1,configurable:!0}),e.prototype.getNewSequence=function(t,r){return new e({parserContext:this.parserContext,startIndex:t,endIndex:r})},e.prototype.getContainingTextRange=function(){return this.isEmpty()?Le.empty:this.parserContext.sourceRange.getNewRange(this.parserContext.tokens[this._startIndex].range.pos,this.parserContext.tokens[this._endIndex-1].range.end)},e.prototype.isEmpty=function(){return this._startIndex===this._endIndex},e.prototype.toString=function(){return this.tokens.map(function(t){return t.toString()}).join("")},e.prototype._validateBounds=function(){if(this.startIndex<0)throw new Error("TokenSequence.startIndex cannot be negative");if(this.endIndex<0)throw new Error("TokenSequence.endIndex cannot be negative");if(this.endIndexthis.parserContext.tokens.length)throw new Error("TokenSequence.startIndex cannot exceed the associated token array");if(this.endIndex>this.parserContext.tokens.length)throw new Error("TokenSequence.endIndex cannot exceed the associated token array")},e}();var ie;(function(e){e[e.BeginComment1=0]="BeginComment1",e[e.BeginComment2=1]="BeginComment2",e[e.CollectingFirstLine=2]="CollectingFirstLine",e[e.CollectingLine=3]="CollectingLine",e[e.AdvancingLine=4]="AdvancingLine",e[e.Done=5]="Done"})(ie||(ie={}));var wa=function(){function e(){}return e.extract=function(t){for(var r=t.sourceRange,i=r.buffer,n=0,a=0,s=0,c=0,l=r.pos,h=ie.BeginComment1,m=[];h!==ie.Done;){if(l>=r.end)switch(h){case ie.BeginComment1:case ie.BeginComment2:return t.log.addMessageForTextRange(w.CommentNotFound,'Expecting a "/**" comment',r),!1;default:return t.log.addMessageForTextRange(w.CommentMissingClosingDelimiter,"Unexpected end of input",r),!1}var _=i[l],k=l;++l;var F=ls)&&m.push(r.getNewRange(s,c)),s=l,c=l,h=ie.AdvancingLine):_==="*"&&F==="/"?(c>s&&m.push(r.getNewRange(s,c)),s=0,c=0,++l,a=l,h=ie.Done):e._whitespaceCharacterRegExp.test(_)||(c=l);break;case ie.AdvancingLine:_==="*"?F==="/"?(s=0,c=0,++l,a=l,h=ie.Done):(F===" "&&++l,s=l,c=l,h=ie.CollectingLine):_===` `?(m.push(r.getNewRange(k,k)),s=l):e._whitespaceCharacterRegExp.test(_)||(c=l,h=ie.CollectingLine);break}}return t.commentRange=r.getNewRange(n,a),t.lines=m,!0},e._whitespaceCharacterRegExp=/^\s$/,e}();var fr=function(){function e(){}return e.readTokens=function(t){e._ensureInitialized();for(var r=[],i=void 0,n=0,a=t;n":f.GreaterThan,"=":f.Equals,"'":f.SingleQuote,'"':f.DoubleQuote,"/":f.Slash,"-":f.Hyphen,"@":f.AtSign,"{":f.LeftCurlyBracket,"}":f.RightCurlyBracket,"`":f.Backtick,".":f.Period,":":f.Colon,",":f.Comma,"[":f.LeftSquareBracket,"]":f.RightSquareBracket,"|":f.Pipe,"(":f.LeftParenthesis,")":f.RightParenthesis,"#":f.PoundSymbol,"+":f.Plus,$:f.DollarSign},a=0,s=Object.getOwnPropertyNames(n);a?@[\\]^`{|}~",e._wordCharacters="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",e}();var Ki=function(){function e(t,r){if(this._parserContext=t,this.tokens=t.tokens,r){if(r.parserContext!==this._parserContext)throw new Error("The embeddedTokenSequence must use the same parser context");this._readerStartIndex=r.startIndex,this._readerEndIndex=r.endIndex}else this._readerStartIndex=0,this._readerEndIndex=this.tokens.length;this._currentIndex=this._readerStartIndex,this._accumulatedStartIndex=this._readerStartIndex}return e.prototype.extractAccumulatedSequence=function(){if(this._accumulatedStartIndex===this._currentIndex)throw new Error("Parser assertion failed: The queue should not be empty when extractAccumulatedSequence() is called");var t=new ut({parserContext:this._parserContext,startIndex:this._accumulatedStartIndex,endIndex:this._currentIndex});return this._accumulatedStartIndex=this._currentIndex,t},e.prototype.isAccumulatedSequenceEmpty=function(){return this._accumulatedStartIndex===this._currentIndex},e.prototype.tryExtractAccumulatedSequence=function(){if(!this.isAccumulatedSequenceEmpty())return this.extractAccumulatedSequence()},e.prototype.assertAccumulatedSequenceIsEmpty=function(){if(!this.isAccumulatedSequenceEmpty()){var t=new ut({parserContext:this._parserContext,startIndex:this._accumulatedStartIndex,endIndex:this._currentIndex}),r=t.tokens.map(function(i){return i.toString()});throw new Error(`Parser assertion failed: The queue should be empty, but it contains: `+JSON.stringify(r))}},e.prototype.peekToken=function(){return this.tokens[this._currentIndex]},e.prototype.peekTokenKind=function(){return this._currentIndex>=this._readerEndIndex?f.EndOfInput:this.tokens[this._currentIndex].kind},e.prototype.peekTokenAfterKind=function(){return this._currentIndex+1>=this._readerEndIndex?f.EndOfInput:this.tokens[this._currentIndex+1].kind},e.prototype.peekTokenAfterAfterKind=function(){return this._currentIndex+2>=this._readerEndIndex?f.EndOfInput:this.tokens[this._currentIndex+2].kind},e.prototype.readToken=function(){if(this._currentIndex>=this._readerEndIndex)throw new Error("Cannot read past end of stream");var t=this.tokens[this._currentIndex];if(t.kind===f.EndOfInput)throw new Error("The EndOfInput token cannot be read");return this._currentIndex++,t},e.prototype.peekPreviousTokenKind=function(){return this._currentIndex===0?f.EndOfInput:this.tokens[this._currentIndex-1].kind},e.prototype.createMarker=function(){return this._currentIndex},e.prototype.backtrackToMarker=function(t){if(t>this._currentIndex)throw new Error("The marker has expired");this._currentIndex=t,t" character should be escaped using a backslash to avoid confusion with an HTML tag'));break;case f.Backtick:this._pushAccumulatedPlainText(t),t.peekTokenAfterKind()===f.Backtick&&t.peekTokenAfterAfterKind()===f.Backtick?this._pushNode(this._parseFencedCode(t)):this._pushNode(this._parseCodeSpan(t));break;default:t.readToken();break}this._pushAccumulatedPlainText(t),this._performValidationChecks()},e.prototype._performValidationChecks=function(){var t=this._parserContext.docComment;t.deprecatedBlock&&(Jr.hasAnyTextContent(t.deprecatedBlock)||this._parserContext.log.addMessageForTokenSequence(w.MissingDeprecationMessage,"The ".concat(t.deprecatedBlock.blockTag.tagName," block must include a deprecation message,")+" e.g. describing the recommended alternative",t.deprecatedBlock.blockTag.getTokenSequence(),t.deprecatedBlock)),t.inheritDocTag&&(t.remarksBlock&&this._parserContext.log.addMessageForTokenSequence(w.InheritDocIncompatibleTag,'A "'.concat(t.remarksBlock.blockTag.tagName,'" block must not be used, because that')+" content is provided by the @inheritDoc tag",t.remarksBlock.blockTag.getTokenSequence(),t.remarksBlock.blockTag),Jr.hasAnyTextContent(t.summarySection)&&this._parserContext.log.addMessageForTextRange(w.InheritDocIncompatibleSummary,"The summary section must not have any content, because that content is provided by the @inheritDoc tag",this._parserContext.commentRange))},e.prototype._validateTagDefinition=function(t,r,i,n,a){if(t){var s=t.syntaxKind===L.InlineTag;s!==i?i?this._parserContext.log.addMessageForTokenSequence(w.TagShouldNotHaveBraces,'The TSDoc tag "'.concat(r,'" is not an inline tag; it must not be enclosed in "{ }" braces'),n,a):this._parserContext.log.addMessageForTokenSequence(w.InlineTagMissingBraces,'The TSDoc tag "'.concat(r,'" is an inline tag; it must be enclosed in "{ }" braces'),n,a):this._parserContext.configuration.validation.reportUnsupportedTags&&(this._parserContext.configuration.isTagSupported(t)||this._parserContext.log.addMessageForTokenSequence(w.UnsupportedTag,'The TSDoc tag "'.concat(r,'" is not supported by this tool'),n,a))}else this._parserContext.configuration.validation.ignoreUndefinedTags||this._parserContext.log.addMessageForTokenSequence(w.UndefinedTag,'The TSDoc tag "'.concat(r,'" is not defined in this configuration'),n,a)},e.prototype._pushAccumulatedPlainText=function(t){t.isAccumulatedSequenceEmpty()||this._pushNode(new Me({parsed:!0,configuration:this._configuration,textExcerpt:t.extractAccumulatedSequence()}))},e.prototype._parseAndPushBlock=function(t){var r=this._parserContext.docComment,i=this._parserContext.configuration,n=r.modifierTagSet,a=this._parseBlockTag(t);if(a.kind!==g.BlockTag){this._pushNode(a);return}var s=a,c=i.tryGetTagDefinitionWithUpperCase(s.tagNameWithUpperCase);if(this._validateTagDefinition(c,s.tagName,!1,s.getTokenSequence(),s),c)switch(c.syntaxKind){case L.BlockTag:if(s.tagNameWithUpperCase===z.param.tagNameWithUpperCase){var l=this._parseParamBlock(t,s,z.param.tagName);this._parserContext.docComment.params.add(l),this._currentSection=l.content;return}else if(s.tagNameWithUpperCase===z.typeParam.tagNameWithUpperCase){var l=this._parseParamBlock(t,s,z.typeParam.tagName);this._parserContext.docComment.typeParams.add(l),this._currentSection=l.content;return}else{var h=new Rt({configuration:this._configuration,blockTag:s});this._addBlockToDocComment(h),this._currentSection=h.content}return;case L.ModifierTag:n.addTag(s);return}this._pushNode(s)},e.prototype._addBlockToDocComment=function(t){var r=this._parserContext.docComment;switch(t.blockTag.tagNameWithUpperCase){case z.remarks.tagNameWithUpperCase:r.remarksBlock=t;break;case z.privateRemarks.tagNameWithUpperCase:r.privateRemarks=t;break;case z.deprecated.tagNameWithUpperCase:r.deprecatedBlock=t;break;case z.returns.tagNameWithUpperCase:r.returnsBlock=t;break;case z.see.tagNameWithUpperCase:r._appendSeeBlock(t);break;default:r.appendCustomBlock(t)}},e.prototype._tryParseJSDocTypeOrValueRest=function(t,r,i,n){for(var a,s=1;s>0;){var c=t.peekTokenKind();switch(c){case r:a===void 0&&s++;break;case i:a===void 0&&s--;break;case f.Backslash:a!==void 0&&(t.readToken(),c=t.peekTokenKind());break;case f.DoubleQuote:case f.SingleQuote:case f.Backtick:a===c?a=void 0:a===void 0&&(a=c);break}if(c===f.EndOfInput){t.backtrackToMarker(n);return}t.readToken()}return t.tryExtractAccumulatedSequence()},e.prototype._tryParseUnsupportedJSDocType=function(t,r,i){if(t.assertAccumulatedSequenceIsEmpty(),!(t.peekTokenKind()!==f.LeftCurlyBracket||t.peekTokenAfterKind()===f.AtSign)){var n=t.createMarker();t.readToken();var a=this._tryParseJSDocTypeOrValueRest(t,f.LeftCurlyBracket,f.RightCurlyBracket,n);if(a){this._parserContext.log.addMessageForTokenSequence(w.ParamTagWithInvalidType,"The "+i+" block should not include a JSDoc-style '{type}'",a,r);var s=this._tryReadSpacingAndNewlines(t);s&&(a=a.getNewSequence(a.startIndex,s.endIndex))}return a}},e.prototype._tryParseJSDocOptionalNameRest=function(t){if(t.assertAccumulatedSequenceIsEmpty(),t.peekTokenKind()!==f.EndOfInput){var r=t.createMarker();return this._tryParseJSDocTypeOrValueRest(t,f.LeftSquareBracket,f.RightSquareBracket,r)}},e.prototype._parseParamBlock=function(t,r,i){var n=t.createMarker(),a=this._tryReadSpacingAndNewlines(t),s=this._tryParseUnsupportedJSDocType(t,r,i),c;t.peekTokenKind()===f.LeftSquareBracket&&(t.readToken(),c=t.extractAccumulatedSequence());for(var l="",h=!1;!h;)switch(t.peekTokenKind()){case f.AsciiWord:case f.Period:case f.DollarSign:l+=t.readToken();break;default:h=!0;break}var m=te.explainIfInvalidUnquotedIdentifier(l);if(m!==void 0){t.backtrackToMarker(n);var _=new lr({configuration:this._configuration,blockTag:r,parameterName:""}),k=l.length>0?"The "+i+" block should be followed by a valid parameter name: "+m:"The "+i+" block should be followed by a parameter name";return this._parserContext.log.addMessageForTokenSequence(w.ParamTagWithInvalidName,k,r.getTokenSequence(),r),_}var F=t.extractAccumulatedSequence(),O;if(c){O=this._tryParseJSDocOptionalNameRest(t);var U=c;O&&(U=r.getTokenSequence().getNewSequence(c.startIndex,O.endIndex)),this._parserContext.log.addMessageForTokenSequence(w.ParamTagWithInvalidOptionalName,"The "+i+" should not include a JSDoc-style optional name; it must not be enclosed in '[ ]' brackets.",U,r)}var P=this._tryReadSpacingAndNewlines(t),Y=this._tryParseUnsupportedJSDocType(t,r,i),xe,ye,re;return t.peekTokenKind()===f.Hyphen?(t.readToken(),xe=t.extractAccumulatedSequence(),ye=this._tryReadSpacingAndNewlines(t),re=this._tryParseUnsupportedJSDocType(t,r,i)):this._parserContext.log.addMessageForTokenSequence(w.ParamTagMissingHyphen,"The "+i+" block should be followed by a parameter name and then a hyphen",r.getTokenSequence(),r),new lr({parsed:!0,configuration:this._configuration,blockTag:r,spacingBeforeParameterNameExcerpt:a,unsupportedJsdocTypeBeforeParameterNameExcerpt:s,unsupportedJsdocOptionalNameOpenBracketExcerpt:c,parameterNameExcerpt:F,parameterName:l,unsupportedJsdocOptionalNameRestExcerpt:O,spacingAfterParameterNameExcerpt:P,unsupportedJsdocTypeAfterParameterNameExcerpt:Y,hyphenExcerpt:xe,spacingAfterHyphenExcerpt:ye,unsupportedJsdocTypeAfterHyphenExcerpt:re})},e.prototype._pushNode=function(t){this._configuration.docNodeManager.isAllowedChild(g.Paragraph,t.kind)?this._currentSection.appendNodeInParagraph(t):this._currentSection.appendNode(t)},e.prototype._parseBackslashEscape=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker();if(t.readToken(),t.peekTokenKind()===f.EndOfInput)return this._backtrackAndCreateError(t,r,w.UnnecessaryBackslash,"A backslash must precede another character that is being escaped");var i=t.readToken();if(!fr.isPunctuation(i.kind))return this._backtrackAndCreateError(t,r,w.UnnecessaryBackslash,"A backslash can only be used to escape a punctuation character");var n=t.extractAccumulatedSequence();return new Br({parsed:!0,configuration:this._configuration,escapeStyle:Wr.CommonMarkBackslash,encodedTextExcerpt:n,decodedText:i.toString()})},e.prototype._parseBlockTag=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker();if(t.peekTokenKind()!==f.AtSign)return this._backtrackAndCreateError(t,r,w.MissingTag,'Expecting a TSDoc tag starting with "@"');switch(t.peekPreviousTokenKind()){case f.EndOfInput:case f.Spacing:case f.Newline:break;default:return this._backtrackAndCreateError(t,r,w.AtSignInWord,'The "@" character looks like part of a TSDoc tag; use a backslash to escape it')}var i=t.readToken().toString();if(t.peekTokenKind()!==f.AsciiWord)return this._backtrackAndCreateError(t,r,w.AtSignWithoutTagName,'Expecting a TSDoc tag name after "@"; if it is not a tag, use a backslash to escape this character');for(var n=t.createMarker();t.peekTokenKind()===f.AsciiWord;)i+=t.readToken().toString();switch(t.peekTokenKind()){case f.Spacing:case f.Newline:case f.EndOfInput:break;default:var a=t.peekToken().range.toString()[0];return this._backtrackAndCreateError(t,r,w.CharactersAfterBlockTag,'The token "'.concat(i,'" looks like a TSDoc tag but contains an invalid character')+" ".concat(JSON.stringify(a),'; if it is not a tag, use a backslash to escape the "@"'))}if(te.explainIfInvalidTSDocTagName(i)){var s=this._createFailureForTokensSince(t,w.MalformedTagName,"A TSDoc tag name must start with a letter and contain only letters and numbers",n);return this._backtrackAndCreateErrorForFailure(t,r,"",s)}return new Nr({parsed:!0,configuration:this._configuration,tagName:i,tagNameExcerpt:t.extractAccumulatedSequence()})},e.prototype._parseInlineTag=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker();if(t.peekTokenKind()!==f.LeftCurlyBracket)return this._backtrackAndCreateError(t,r,w.MissingTag,'Expecting a TSDoc tag starting with "{"');t.readToken();var i=t.extractAccumulatedSequence(),n=t.createMarker();if(t.peekTokenKind()!==f.AtSign)return this._backtrackAndCreateError(t,r,w.MalformedInlineTag,'Expecting a TSDoc tag starting with "{@"');for(var a=t.readToken().toString();t.peekTokenKind()===f.AsciiWord;)a+=t.readToken().toString();if(a==="@"){var s=this._createFailureForTokensSince(t,w.MalformedInlineTag,'Expecting a TSDoc inline tag name after the "{@" characters',n);return this._backtrackAndCreateErrorRangeForFailure(t,r,n,"",s)}if(te.explainIfInvalidTSDocTagName(a)){var s=this._createFailureForTokensSince(t,w.MalformedTagName,"A TSDoc tag name must start with a letter and contain only letters and numbers",n);return this._backtrackAndCreateErrorRangeForFailure(t,r,n,"",s)}var c=t.extractAccumulatedSequence(),l=this._tryReadSpacingAndNewlines(t);if(l===void 0&&t.peekTokenKind()!==f.RightCurlyBracket){var h=t.peekToken().range.toString()[0],s=this._createFailureForToken(t,w.CharactersAfterInlineTag,"The character ".concat(JSON.stringify(h)," cannot appear after the TSDoc tag name; expecting a space"));return this._backtrackAndCreateErrorRangeForFailure(t,r,n,"",s)}for(var m=!1;!m;)switch(t.peekTokenKind()){case f.EndOfInput:return this._backtrackAndCreateErrorRange(t,r,n,w.InlineTagMissingRightBrace,'The TSDoc inline tag name is missing its closing "}"');case f.Backslash:if(t.readToken(),!fr.isPunctuation(t.peekTokenKind())){var s=this._createFailureForToken(t,w.UnnecessaryBackslash,"A backslash can only be used to escape a punctuation character");return this._backtrackAndCreateErrorRangeForFailure(t,r,n,"Error reading inline TSDoc tag: ",s)}t.readToken();break;case f.LeftCurlyBracket:{var s=this._createFailureForToken(t,w.InlineTagUnescapedBrace,'The "{" character must be escaped with a backslash when used inside a TSDoc inline tag');return this._backtrackAndCreateErrorRangeForFailure(t,r,n,"",s)}case f.RightCurlyBracket:m=!0;break;default:t.readToken();break}var _=t.tryExtractAccumulatedSequence();t.readToken();var k=t.extractAccumulatedSequence(),F={parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:i,tagNameExcerpt:c,tagName:a,spacingAfterTagNameExcerpt:l,tagContentExcerpt:_,closingDelimiterExcerpt:k},O=a.toUpperCase(),U=new Ki(this._parserContext,_||ut.createEmpty(this._parserContext)),P;switch(O){case z.inheritDoc.tagNameWithUpperCase:P=this._parseInheritDocTag(F,U);break;case z.link.tagNameWithUpperCase:P=this._parseLinkTag(F,U);break;default:P=new Vt(F)}var Y=this._parserContext.configuration.tryGetTagDefinitionWithUpperCase(O);return this._validateTagDefinition(Y,a,!0,c,P),P},e.prototype._parseInheritDocTag=function(t,r){var i=new Vt(t),n=Qr({},t);if(r.peekTokenKind()!==f.EndOfInput){if(n.declarationReference=this._parseDeclarationReference(r,t.tagNameExcerpt,i),!n.declarationReference)return i;if(r.peekTokenKind()!==f.EndOfInput)return r.readToken(),this._parserContext.log.addMessageForTokenSequence(w.InheritDocTagSyntax,"Unexpected character after declaration reference",r.extractAccumulatedSequence(),i),i}return new cr(n)},e.prototype._parseLinkTag=function(t,r){var i=new Vt(t),n=Qr({},t);if(!t.tagContentExcerpt)return this._parserContext.log.addMessageForTokenSequence(w.LinkTagEmpty,"The @link tag content is missing",n.tagNameExcerpt,i),i;for(var a=r.peekTokenKind()===f.Slash&&r.peekTokenAfterKind()===f.Slash,s=r.createMarker(),c=a;!c;)switch(r.peekTokenKind()){case f.AsciiWord:case f.Period:case f.Hyphen:case f.Plus:r.readToken();break;case f.Colon:r.readToken(),a=r.peekTokenKind()===f.Slash&&r.peekTokenAfterKind()===f.Slash,c=!0;break;default:c=!0}if(r.backtrackToMarker(s),a){if(!this._parseLinkTagUrlDestination(r,n,t.tagNameExcerpt,i))return i}else if(!this._parseLinkTagCodeDestination(r,n,t.tagNameExcerpt,i))return i;if(r.peekTokenKind()===f.Spacing)throw new Error("Unconsumed spacing encountered after construct");if(r.peekTokenKind()===f.Pipe){r.readToken(),n.pipeExcerpt=r.extractAccumulatedSequence(),n.spacingAfterPipeExcerpt=this._tryReadSpacingAndNewlines(r),c=!1;for(var l=void 0;!c;)switch(r.peekTokenKind()){case f.EndOfInput:c=!0;break;case f.Pipe:case f.LeftCurlyBracket:var h=r.readToken().toString();return this._parserContext.log.addMessageForTokenSequence(w.LinkTagUnescapedText,'The "'.concat(h,'" character may not be used in the link text without escaping it'),r.extractAccumulatedSequence(),i),i;case f.Spacing:case f.Newline:r.readToken();break;default:l=r.createMarker()+1,r.readToken()}var m=r.tryExtractAccumulatedSequence();m&&(l===void 0?n.spacingAfterLinkTextExcerpt=m:l>=m.endIndex?n.linkTextExcerpt=m:(n.linkTextExcerpt=m.getNewSequence(m.startIndex,l),n.spacingAfterLinkTextExcerpt=m.getNewSequence(l,m.endIndex)))}else if(r.peekTokenKind()!==f.EndOfInput)return r.readToken(),this._parserContext.log.addMessageForTokenSequence(w.LinkTagDestinationSyntax,"Unexpected character after link destination",r.extractAccumulatedSequence(),i),i;return new Vr(n)},e.prototype._parseLinkTagUrlDestination=function(t,r,i,n){for(var a="",s=!1;!s;)switch(t.peekTokenKind()){case f.Spacing:case f.Newline:case f.EndOfInput:case f.Pipe:case f.RightCurlyBracket:s=!0;break;default:a+=t.readToken();break}if(a.length===0)throw new Error("Missing URL in _parseLinkTagUrlDestination()");var c=t.extractAccumulatedSequence(),l=te.explainIfInvalidLinkUrl(a);return l?(this._parserContext.log.addMessageForTokenSequence(w.LinkTagInvalidUrl,l,c,n),!1):(r.urlDestinationExcerpt=c,r.spacingAfterDestinationExcerpt=this._tryReadSpacingAndNewlines(t),!0)},e.prototype._parseLinkTagCodeDestination=function(t,r,i,n){return r.codeDestination=this._parseDeclarationReference(t,i,n),!!r.codeDestination},e.prototype._parseDeclarationReference=function(t,r,i){t.assertAccumulatedSequenceIsEmpty();for(var n=t.createMarker(),a=!1,s=!0,c=!1,l=!1;!l;)switch(t.peekTokenKind()){case f.DoubleQuote:case f.EndOfInput:case f.LeftCurlyBracket:case f.LeftParenthesis:case f.LeftSquareBracket:case f.Newline:case f.Pipe:case f.RightCurlyBracket:case f.RightParenthesis:case f.RightSquareBracket:case f.SingleQuote:case f.Spacing:l=!0;break;case f.PoundSymbol:a=!0,l=!0;break;case f.Slash:case f.AtSign:s&&(c=!0),t.readToken();break;case f.AsciiWord:case f.Period:case f.Hyphen:t.readToken();break;default:s=!1,t.readToken()}if(!a&&c){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingHash,'The declaration reference appears to contain a package name or import path, but it is missing the "#" delimiter',t.extractAccumulatedSequence(),i);return}t.backtrackToMarker(n);var h,m,_,k;if(a){if(t.peekTokenKind()!==f.Period){var F=t.peekTokenKind()===f.AtSign,O=!1;for(l=!1;!l;)switch(t.peekTokenKind()){case f.EndOfInput:throw new Error("Expecting pound symbol");case f.Slash:F&&!O?(t.readToken(),O=!0):l=!0;break;case f.PoundSymbol:l=!0;break;default:t.readToken()}if(!t.isAccumulatedSequenceEmpty()){h=t.extractAccumulatedSequence();var U=te.explainIfInvalidPackageName(h.toString());if(U){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMalformedPackageName,U,h,i);return}}}for(l=!1;!l;)switch(t.peekTokenKind()){case f.EndOfInput:throw new Error("Expecting pound symbol");case f.PoundSymbol:l=!0;break;default:t.readToken()}if(!t.isAccumulatedSequenceEmpty()){m=t.extractAccumulatedSequence();var U=te.explainIfInvalidImportPath(m.toString(),!!h);if(U){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMalformedImportPath,U,m,i);return}}if(t.peekTokenKind()!==f.PoundSymbol)throw new Error("Expecting pound symbol");if(t.readToken(),_=t.extractAccumulatedSequence(),k=this._tryReadSpacingAndNewlines(t),h===void 0&&m===void 0){this._parserContext.log.addMessageForTokenSequence(w.ReferenceHashSyntax,"The hash character must be preceded by a package name or import path",_,i);return}}var P=[];for(l=!1;!l;)switch(t.peekTokenKind()){case f.Period:case f.LeftParenthesis:case f.AsciiWord:case f.Colon:case f.LeftSquareBracket:case f.DoubleQuote:var Y=P.length>0,xe=this._parseMemberReference(t,Y,r,i);if(!xe)return;P.push(xe);break;default:l=!0}if(h===void 0&&m===void 0&&P.length===0){this._parserContext.log.addMessageForTokenSequence(w.MissingReference,"Expecting a declaration reference",r,i);return}return new Fr({parsed:!0,configuration:this._configuration,packageNameExcerpt:h,importPathExcerpt:m,importHashExcerpt:_,spacingAfterImportHashExcerpt:k,memberReferences:P})},e.prototype._parseMemberReference=function(t,r,i,n){var a={parsed:!0,configuration:this._configuration};if(r){if(t.peekTokenKind()!==f.Period){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingDot,"Expecting a period before the next component of a declaration reference",i,n);return}t.readToken(),a.dotExcerpt=t.extractAccumulatedSequence(),a.spacingAfterDotExcerpt=this._tryReadSpacingAndNewlines(t)}if(t.peekTokenKind()===f.LeftParenthesis&&(t.readToken(),a.leftParenthesisExcerpt=t.extractAccumulatedSequence(),a.spacingAfterLeftParenthesisExcerpt=this._tryReadSpacingAndNewlines(t)),t.peekTokenKind()===f.LeftSquareBracket){if(a.memberSymbol=this._parseMemberSymbol(t,n),!a.memberSymbol)return}else if(a.memberIdentifier=this._parseMemberIdentifier(t,i,n),!a.memberIdentifier)return;if(a.spacingAfterMemberExcerpt=this._tryReadSpacingAndNewlines(t),t.peekTokenKind()===f.Colon){if(t.readToken(),a.colonExcerpt=t.extractAccumulatedSequence(),a.spacingAfterColonExcerpt=this._tryReadSpacingAndNewlines(t),!a.leftParenthesisExcerpt){this._parserContext.log.addMessageForTokenSequence(w.ReferenceSelectorMissingParens,"Syntax error in declaration reference: the member selector must be enclosed in parentheses",a.colonExcerpt,n);return}if(a.selector=this._parseMemberSelector(t,a.colonExcerpt,n),!a.selector)return;a.spacingAfterSelectorExcerpt=this._tryReadSpacingAndNewlines(t)}else if(a.leftParenthesisExcerpt){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingColon,"Expecting a colon after the identifier because the expression is in parentheses",a.leftParenthesisExcerpt,n);return}if(a.leftParenthesisExcerpt){if(t.peekTokenKind()!==f.RightParenthesis){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingRightParen,"Expecting a matching right parenthesis",a.leftParenthesisExcerpt,n);return}t.readToken(),a.rightParenthesisExcerpt=t.extractAccumulatedSequence(),a.spacingAfterRightParenthesisExcerpt=this._tryReadSpacingAndNewlines(t)}return new Hr(a)},e.prototype._parseMemberSymbol=function(t,r){if(t.peekTokenKind()!==f.LeftSquareBracket)throw new Error('Expecting "["');t.readToken();var i=t.extractAccumulatedSequence(),n=this._tryReadSpacingAndNewlines(t),a=this._parseDeclarationReference(t,i,r);if(!a){this._parserContext.log.addMessageForTokenSequence(w.ReferenceSymbolSyntax,"Missing declaration reference in symbol reference",i,r);return}if(t.peekTokenKind()!==f.RightSquareBracket){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingRightBracket,"Missing closing square bracket for symbol reference",i,r);return}t.readToken();var s=t.extractAccumulatedSequence();return new Ur({parsed:!0,configuration:this._configuration,leftBracketExcerpt:i,spacingAfterLeftBracketExcerpt:n,symbolReference:a,rightBracketExcerpt:s})},e.prototype._parseMemberIdentifier=function(t,r,i){var n=void 0,a=void 0;if(t.peekTokenKind()===f.DoubleQuote){for(t.readToken(),n=t.extractAccumulatedSequence();t.peekTokenKind()!==f.DoubleQuote;){if(t.peekTokenKind()===f.EndOfInput){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingQuote,"Unexpected end of input inside quoted member identifier",n,i);return}t.readToken()}if(t.isAccumulatedSequenceEmpty()){this._parserContext.log.addMessageForTokenSequence(w.ReferenceEmptyIdentifier,"The quoted identifier cannot be empty",n,i);return}var s=t.extractAccumulatedSequence();return t.readToken(),a=t.extractAccumulatedSequence(),new ur({parsed:!0,configuration:this._configuration,leftQuoteExcerpt:n,identifierExcerpt:s,rightQuoteExcerpt:a})}else{for(var c=!1;!c;)switch(t.peekTokenKind()){case f.AsciiWord:case f.DollarSign:t.readToken();break;default:c=!0;break}if(t.isAccumulatedSequenceEmpty()){this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingIdentifier,"Syntax error in declaration reference: expecting a member identifier",r,i);return}var s=t.extractAccumulatedSequence(),l=s.toString(),h=te.explainIfInvalidUnquotedMemberIdentifier(l);if(h){this._parserContext.log.addMessageForTokenSequence(w.ReferenceUnquotedIdentifier,h,s,i);return}return new ur({parsed:!0,configuration:this._configuration,leftQuoteExcerpt:n,identifierExcerpt:s,rightQuoteExcerpt:a})}},e.prototype._parseMemberSelector=function(t,r,i){t.peekTokenKind()!==f.AsciiWord&&this._parserContext.log.addMessageForTokenSequence(w.ReferenceMissingLabel,"Expecting a selector label after the colon",r,i);var n=t.readToken().toString(),a=t.extractAccumulatedSequence(),s=new Kr({parsed:!0,configuration:this._configuration,selectorExcerpt:a,selector:n});if(s.errorMessage){this._parserContext.log.addMessageForTokenSequence(w.ReferenceSelectorSyntax,s.errorMessage,a,i);return}return s},e.prototype._parseHtmlStartTag=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker(),i=t.readToken();if(i.kind!==f.LessThan)throw new Error('Expecting an HTML tag starting with "<"');var n=t.extractAccumulatedSequence(),a=this._parseHtmlName(t);if(hr(a))return this._backtrackAndCreateErrorForFailure(t,r,"Invalid HTML element: ",a);for(var s=this._tryReadSpacingAndNewlines(t),c=[];t.peekTokenKind()===f.AsciiWord;){var l=this._parseHtmlAttribute(t);if(hr(l))return this._backtrackAndCreateErrorForFailure(t,r,"The HTML element has an invalid attribute: ",l);c.push(l)}t.assertAccumulatedSequenceIsEmpty();var h=t.createMarker(),m=!1;if(t.peekTokenKind()===f.Slash&&(t.readToken(),m=!0),t.peekTokenKind()!==f.GreaterThan){var _=this._createFailureForTokensSince(t,w.HtmlTagMissingGreaterThan,'Expecting an attribute or ">" or "/>"',h);return this._backtrackAndCreateErrorForFailure(t,r,"The HTML tag has invalid syntax: ",_)}t.readToken();var k=t.extractAccumulatedSequence();return new Rr({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:n,nameExcerpt:a,spacingAfterNameExcerpt:s,htmlAttributes:c,selfClosingTag:m,closingDelimiterExcerpt:k})},e.prototype._parseHtmlAttribute=function(t){t.assertAccumulatedSequenceIsEmpty();var r=this._parseHtmlName(t);if(hr(r))return r;var i=this._tryReadSpacingAndNewlines(t);if(t.peekTokenKind()!==f.Equals)return this._createFailureForToken(t,w.HtmlTagMissingEquals,'Expecting "=" after HTML attribute name');t.readToken();var n=t.extractAccumulatedSequence(),a=this._tryReadSpacingAndNewlines(t),s=this._parseHtmlString(t);if(hr(s))return s;var c=t.extractAccumulatedSequence(),l=this._tryReadSpacingAndNewlines(t);return new qr({parsed:!0,configuration:this._configuration,nameExcerpt:r,spacingAfterNameExcerpt:i,equalsExcerpt:n,spacingAfterEqualsExcerpt:a,valueExcerpt:c,spacingAfterValueExcerpt:l})},e.prototype._parseHtmlString=function(t){var r=t.createMarker(),i=t.peekTokenKind();if(i!==f.DoubleQuote&&i!==f.SingleQuote)return this._createFailureForToken(t,w.HtmlTagMissingString,"Expecting an HTML string starting with a single-quote or double-quote character");t.readToken();for(var n="";;){var a=t.peekTokenKind();if(a===i){t.readToken();break}if(a===f.EndOfInput||a===f.Newline)return this._createFailureForToken(t,w.HtmlStringMissingQuote,"The HTML string is missing its closing quote",r);n+=t.readToken().toString()}return t.peekTokenKind()===f.AsciiWord?this._createFailureForToken(t,w.TextAfterHtmlString,"The next character after a closing quote must be spacing or punctuation"):n},e.prototype._parseHtmlEndTag=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker(),i=t.peekToken();if(i.kind!==f.LessThan)return this._backtrackAndCreateError(t,r,w.MissingHtmlEndTag,'Expecting an HTML tag starting with "" for the HTML tag');return this._backtrackAndCreateErrorForFailure(t,r,"",l)}t.readToken();var h=t.extractAccumulatedSequence();return new Lr({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:a,nameExcerpt:s,spacingAfterNameExcerpt:c,closingDelimiterExcerpt:h})},e.prototype._parseHtmlName=function(t){var r=t.createMarker();if(t.peekTokenKind()===f.Spacing)return this._createFailureForTokensSince(t,w.MalformedHtmlName,"A space is not allowed here",r);for(var i=!1;!i;)switch(t.peekTokenKind()){case f.Hyphen:case f.Period:case f.AsciiWord:t.readToken();break;default:i=!0;break}var n=t.tryExtractAccumulatedSequence();if(!n)return this._createFailureForToken(t,w.MalformedHtmlName,"Expecting an HTML name");var a=n.toString(),s=te.explainIfInvalidHtmlName(a);return s?this._createFailureForTokensSince(t,w.MalformedHtmlName,s,r):this._configuration.validation.reportUnsupportedHtmlElements&&!this._configuration.isHtmlElementSupported(a)?this._createFailureForToken(t,w.UnsupportedHtmlElementName,"The HTML element name ".concat(JSON.stringify(a)," is not defined by your TSDoc configuration"),r):n},e.prototype._parseFencedCode=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker(),i=r+2;switch(t.peekPreviousTokenKind()){case f.Newline:case f.EndOfInput:break;default:return this._backtrackAndCreateErrorRange(t,r,i,w.CodeFenceOpeningIndent,"The opening backtick for a code fence must appear at the start of the line")}var n="";if(n+=t.readToken(),n+=t.readToken(),n+=t.readToken(),n!=="```")throw new Error("Expecting three backticks");for(var a=t.extractAccumulatedSequence();t.peekTokenKind()===f.Spacing;)t.readToken();for(var s=t.tryExtractAccumulatedSequence(),c=!1,l=void 0;!c;)switch(t.peekTokenKind()){case f.Spacing:case f.Newline:l===void 0&&(l=t.createMarker()),t.peekTokenKind()===f.Newline&&(c=!0),t.readToken();break;case f.Backtick:var h=this._createFailureForToken(t,w.CodeFenceSpecifierSyntax,"The language specifier cannot contain backtick characters");return this._backtrackAndCreateErrorRangeForFailure(t,r,i,"Error parsing code fence: ",h);case f.EndOfInput:var m=this._createFailureForToken(t,w.CodeFenceMissingDelimiter,"Missing closing delimiter");return this._backtrackAndCreateErrorRangeForFailure(t,r,i,"Error parsing code fence: ",m);default:l=void 0,t.readToken();break}var _=t.extractAccumulatedSequence(),k=_.getNewSequence(_.startIndex,l),F=_.getNewSequence(l,_.endIndex),O=-1,U=-1;c=!1;for(var P;!c;)switch(t.peekTokenKind()){case f.EndOfInput:var m=this._createFailureForToken(t,w.CodeFenceMissingDelimiter,"Missing closing delimiter");return this._backtrackAndCreateErrorRangeForFailure(t,r,i,"Error parsing code fence: ",m);case f.Newline:for(P=t.readToken(),O=t.createMarker();t.peekTokenKind()===f.Spacing;)P=t.readToken();if(t.peekTokenKind()!==f.Backtick||(U=t.createMarker(),t.readToken(),t.peekTokenKind()!==f.Backtick)||(t.readToken(),t.peekTokenKind()!==f.Backtick))break;t.readToken(),c=!0;break;default:t.readToken();break}P.kind!==f.Newline&&this._parserContext.log.addMessageForTextRange(w.CodeFenceClosingIndent,"The closing delimiter for a code fence must not be indented",P.range);var Y=t.extractAccumulatedSequence(),xe=Y.getNewSequence(Y.startIndex,O),ye=Y.getNewSequence(O,U),re=Y.getNewSequence(U,Y.endIndex);for(c=!1;!c;)switch(t.peekTokenKind()){case f.Spacing:t.readToken();break;case f.Newline:c=!0,t.readToken();break;case f.EndOfInput:c=!0;break;default:this._parserContext.log.addMessageForTextRange(w.CodeFenceClosingSyntax,"Unexpected characters after closing delimiter for code fence",t.peekToken().range),c=!0;break}var _t=t.tryExtractAccumulatedSequence();return new Or({parsed:!0,configuration:this._configuration,openingFenceExcerpt:a,spacingAfterOpeningFenceExcerpt:s,languageExcerpt:k,spacingAfterLanguageExcerpt:F,codeExcerpt:xe,spacingBeforeClosingFenceExcerpt:ye,closingFenceExcerpt:re,spacingAfterClosingFenceExcerpt:_t})},e.prototype._parseCodeSpan=function(t){t.assertAccumulatedSequenceIsEmpty();var r=t.createMarker();if(t.peekTokenKind()!==f.Backtick)throw new Error('Expecting a code span starting with a backtick character "`"');t.readToken();for(var i=t.extractAccumulatedSequence(),n=void 0,a=void 0;;){var s=t.peekTokenKind();if(s===f.Backtick){if(t.isAccumulatedSequenceEmpty())return this._backtrackAndCreateErrorRange(t,r,r+1,w.CodeSpanEmpty,"A code span must contain at least one character between the backticks");n=t.extractAccumulatedSequence(),t.readToken(),a=t.extractAccumulatedSequence();break}if(s===f.EndOfInput||s===f.Newline)return this._backtrackAndCreateError(t,r,w.CodeSpanMissingDelimiter,"The code span is missing its closing backtick");t.readToken()}return new Dr({parsed:!0,configuration:this._configuration,openingDelimiterExcerpt:i,codeExcerpt:n,closingDelimiterExcerpt:a})},e.prototype._tryReadSpacingAndNewlines=function(t){var r=!1;do switch(t.peekTokenKind()){case f.Spacing:case f.Newline:t.readToken();break;default:r=!0;break}while(!r);return t.tryExtractAccumulatedSequence()},e.prototype._createError=function(t,r,i){t.readToken();var n=t.extractAccumulatedSequence(),a=new bt({parsed:!0,configuration:this._configuration,textExcerpt:n,messageId:r,errorMessage:i,errorLocation:n});return this._parserContext.log.addMessageForDocErrorText(a),a},e.prototype._backtrackAndCreateError=function(t,r,i,n){return t.backtrackToMarker(r),this._createError(t,i,n)},e.prototype._backtrackAndCreateErrorRange=function(t,r,i,n,a){for(t.backtrackToMarker(r);t.createMarker()!==i;)t.readToken();t.peekTokenKind()!==f.EndOfInput&&t.readToken();var s=t.extractAccumulatedSequence(),c=new bt({parsed:!0,configuration:this._configuration,textExcerpt:s,messageId:n,errorMessage:a,errorLocation:s});return this._parserContext.log.addMessageForDocErrorText(c),c},e.prototype._backtrackAndCreateErrorForFailure=function(t,r,i,n){t.backtrackToMarker(r),t.readToken();var a=t.extractAccumulatedSequence(),s=new bt({parsed:!0,configuration:this._configuration,textExcerpt:a,messageId:n.failureMessageId,errorMessage:i+n.failureMessage,errorLocation:n.failureLocation});return this._parserContext.log.addMessageForDocErrorText(s),s},e.prototype._backtrackAndCreateErrorRangeForFailure=function(t,r,i,n,a){for(t.backtrackToMarker(r);t.createMarker()!==i;)t.readToken();t.peekTokenKind()!==f.EndOfInput&&t.readToken();var s=t.extractAccumulatedSequence(),c=new bt({parsed:!0,configuration:this._configuration,textExcerpt:s,messageId:a.failureMessageId,errorMessage:n+a.failureMessage,errorLocation:a.failureLocation});return this._parserContext.log.addMessageForDocErrorText(c),c},e.prototype._createFailureForToken=function(t,r,i,n){n||(n=t.createMarker());var a=new ut({parserContext:this._parserContext,startIndex:n,endIndex:n+1});return{failureMessageId:r,failureMessage:i,failureLocation:a}},e.prototype._createFailureForTokensSince=function(t,r,i,n){var a=t.createMarker();if(a{i.createEl("b",{text:"Templater error"}),i.createSpan({text:":"}),i.createEl("br"),i.createSpan({text:e.message}),e instanceof C&&e.console_msg&&(i.createEl("br"),i.createSpan({text:"Check console for more information"}),console.error("Templater Error:",e.message,` `,e.console_msg))});t.messageEl.appendChild(r)}var C=class extends Error{constructor(t,r){super(t);this.console_msg=r;this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}};async function de(e,t){try{return await e()}catch(r){return r instanceof C?le(r):le(new C(t,r instanceof Error?r.message:void 0)),null}}function je(e,t){try{return e()}catch(r){return le(new C(t,r instanceof Error?r.message:void 0)),null}}var me=$(require("obsidian"));function lt(e){return new Promise(t=>window.setTimeout(t,e))}function Ea(){return/(<%(?:-|_)?\s*[*~]{0,1})\+((?:.|\s)*?%>)/g}function Yi(e,t){t=(0,me.normalizePath)(t);let r=e.vault.getAbstractFileByPath(t);if(!r)throw new C(`Folder "${t}" doesn't exist`);if(!(r instanceof me.TFolder))throw new C(`${t} is a file, not a folder`);return r}function pt(e,t){t=(0,me.normalizePath)(t);let r=e.vault.getAbstractFileByPath(t);if(!r)throw new C(`File "${t}" doesn't exist`);if(!(r instanceof me.TFile))throw new C(`${t} is a folder, not a file`);return r}function Re(e,t){let r=Yi(e,t),i=[];return me.Vault.recurseChildren(r,n=>{n instanceof me.TFile&&i.push(n)}),i.sort((n,a)=>n.path.localeCompare(a.path)),i}async function Sa(e,t){return await Promise.all(t.map(async i=>{let n=await e.vault.cachedRead(i);return ic(i,n)}))}function ic(e,t){let r=zi(t),i=new $i(e);return i.description=r.description,i.returns=r.returns,i.arguments=r.arguments,i}function zi(e){let r=new Ui().parseString(e);return{description:nc(r.docComment.summarySection),returns:ac(r.docComment.returnsBlock),arguments:sc(r.docComment.params)}}function nc(e){try{return e.nodes.map(r=>r.getChildNodes().filter(i=>i instanceof Me).map(i=>i.text).join(` `)).join(` `)}catch{return console.error("Failed to parse summary section"),""}}function ac(e){if(!e)return"";try{let t=e.content.nodes[0]?.getChildNodes()[0];return t instanceof Me?t.text.trim():""}catch{return""}}function sc(e){try{return e.blocks.map(i=>{let n=i.parameterName,a=i.content.getChildNodes()[0].getChildNodes().filter(s=>s instanceof Me).map(s=>s.text).join(" ");return new Gi(n,a)})}catch{return[]}}function Wi(e,t,r){if(r<0||r===e.length)return;let i=e.splice(t,1)[0];e.splice(r,0,i)}function ft(e){return e.workspace.activeEditor?.file??e.workspace.getActiveFile()}function Xr(e){let t=e.lastIndexOf("/");return t!==-1?e.slice(0,t):""}function ue(e){return e!==null&&typeof e=="object"}function Ca(e){let t=e.toString(),r=t.indexOf("(");return t.substring(r+1,t.indexOf(")")).replace(/ /g,"").split(",")}function Ji(e,t,r){let i=e.instanceOf(HTMLOListElement)?"li":"p",n=e.createEl(i),a=e.createEl("b",{text:t});return n.appendChild(a),n.appendChild(activeDocument.createTextNode(`: ${r}`)),n}function Zr(e,t){if(Object.keys(t).length!==0){for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r))if(Object.prototype.hasOwnProperty.call(e,r)){let i=e[r],n=t[r];if(Array.isArray(i)||Array.isArray(n)){let a=Array.isArray(i)?i:[i],s=Array.isArray(n)?n:[n];e[r]=a.concat(s).unique()}else ue(i)&&ue(n)?Zr(i,n):n!=null&&n!==""&&(e[r]=n)}else e[r]=t[r]}}function dr(e){let t={},r=(0,me.getFrontMatterInfo)(e);if(r.frontmatter)try{t=(0,me.parseYaml)(r.frontmatter)}catch{return{frontmatter:t,content:e}}return{frontmatter:t,content:e.slice(r.contentStart)}}var ei=$(require("obsidian")),Qi=class extends ei.ConfirmationModal{constructor(t,r,i,n){super(t);this.setTitle(r),this.modalEl.addClass("templater-confirm-dangerous-setting-modal"),this.contentEl.createEl("p",{text:i}),this.contentEl.createEl("p",{text:"Only enable this if you trust the current and future contents of this vault, including files you may later download, copy, or sync from other people.",cls:"mod-warning"}),this.contentEl.createEl("p",{text:"This setting is stored on this device only; enable it separately on each device where you use this vault."});let a;ei.Platform.isMobile?this.addButton(s=>{a=s,s.setButtonText("I understand the risks, enable").setCta().onClick(async()=>{await n()})}):this.addCheckbox("I understand the risks",s=>{a.setDisabled(!s)}).addButton(s=>{a=s,s.setButtonText("Enable").setCta().setDisabled(!0).onClick(async()=>{await n()})}),this.addCancelButton()}};var Ut=$(require("obsidian"));var ti=$(require("obsidian"));var ge;(function(r){r[r.TemplateFiles=0]="TemplateFiles",r[r.ScriptFiles=1]="ScriptFiles"})(ge||(ge={}));var Xe=class extends ti.AbstractInputSuggest{constructor(t,r,i){super(r.app,t);this.inputEl=t;this.plugin=r;this.mode=i}get_folder(t){switch(t){case 0:return this.plugin.settings.templates_folder;case 1:return this.plugin.settings.user_scripts_folder}}get_error_msg(t){switch(t){case 0:return"Templates folder doesn't exist";case 1:return"User Scripts folder doesn't exist"}}getSuggestions(t){let r=je(()=>Re(this.plugin.app,this.get_folder(this.mode)),this.get_error_msg(this.mode));if(!r)return[];let i=[],n=t.toLowerCase();return r.forEach(a=>{a instanceof ti.TFile&&a.extension==="md"&&a.path.toLowerCase().includes(n)&&i.push(a)}),i.slice(0,1e3)}renderSuggestion(t,r){r.setText(t.path)}selectSuggestion(t){this.setValue(t.path),this.inputEl.trigger("input"),this.close()}};var Xi=class extends Ut.Modal{constructor(t,r,i,n){super(t);this.plugin=r;this.onSubmit=n;this.regex=i.regex,this.template=i.template}onOpen(){this.setTitle("File regex template"),this.modalEl.addClass("templater-file-regex-template-modal");let{contentEl:t}=this,r=new Ut.Setting(t).setName("File regex").setDesc("Regex to match on. Tests against full file path relative to the root of the vault, including file extension.").addText(n=>{n.setPlaceholder("File regex").setValue(this.regex).onChange(a=>{this.regex=a})}),i=new Ut.Setting(t).setName("Template").setDesc("Template to apply on match.").addText(n=>{new Xe(n.inputEl,this.plugin,ge.TemplateFiles),n.setPlaceholder("Template").setValue(this.template).onChange(a=>{this.template=a})});new Ut.Setting(t).addButton(n=>n.setButtonText("Done").setCta().onClick(async()=>{if(!this.regex){r.setErrorMessage("File regex cannot be empty");return}if(!this.template){i.setErrorMessage("Template cannot be empty");return}await this.onSubmit(this.regex,this.template),this.close()})).addButton(n=>n.setButtonText("Cancel").onClick(()=>this.close()))}onClose(){this.contentEl.empty()}};var $t=$(require("obsidian"));var Pa=$(require("obsidian")),mr=class extends Pa.AbstractInputSuggest{constructor(t,r){super(t,r);this.inputEl=r}getSuggestions(t){let r=t.toLowerCase();return this.app.vault.getAllFolders().filter(n=>n.path.toLowerCase().includes(r)).slice(0,1e3)}renderSuggestion(t,r){r.setText(t.path)}selectSuggestion(t){this.setValue(t.path),this.inputEl.trigger("input"),this.close()}};var Zi=class extends $t.Modal{constructor(t,r,i,n,a){super(t);this.plugin=r;this.onSubmit=n;this.validateFolder=a;this.folder=i.folder,this.template=i.template}onOpen(){this.setTitle("Folder template"),this.modalEl.addClass("templater-folder-template-modal");let{contentEl:t}=this,r=new $t.Setting(t).setName("Folder").setDesc("Folder to match on. Includes subfolders of this folder.").addText(n=>{new mr(this.app,n.inputEl),n.setPlaceholder("Folder").setValue(this.folder).onChange(a=>{this.folder=a})}),i=new $t.Setting(t).setName("Template").setDesc("Template to apply on match.").addText(n=>{new Xe(n.inputEl,this.plugin,ge.TemplateFiles),n.setPlaceholder("Template").setValue(this.template).onChange(a=>{this.template=a})});new $t.Setting(t).addButton(n=>n.setButtonText("Done").setCta().onClick(async()=>{if(!this.folder){r.setErrorMessage("Folder cannot be empty");return}if(!this.template){i.setErrorMessage("Template cannot be empty");return}let a=this.validateFolder(this.folder);if(a){r.setErrorMessage(a);return}await this.onSubmit(this.folder,this.template),this.close()})).addButton(n=>n.setButtonText("Cancel").onClick(()=>this.close()))}onClose(){this.contentEl.empty()}};var kt=$(require("obsidian"));var en=class extends kt.Modal{constructor(t,r){super(t);this.onSubmit=r;this.folder=""}onOpen(){this.setTitle("Add exclusion");let{contentEl:t}=this;this.modalEl.addClass("templater-ignore-folder-modal");let r=new kt.Setting(t).setName("Folder").setDesc("Enter a path, e.g. meta/templates").addText(n=>{new mr(this.app,n.inputEl),n.onChange(a=>{this.folder=a})}),i=t.createDiv("modal-button-container");new kt.ButtonComponent(i).setButtonText("Done").setCta().onClick(async()=>{if(!this.folder){r.setErrorMessage("Folder cannot be empty");return}await this.onSubmit(this.folder),this.close()}),new kt.ButtonComponent(i).setButtonText("Cancel").onClick(()=>this.close())}onClose(){this.contentEl.empty()}};var jt=$(require("obsidian"));var tn=class extends jt.Modal{constructor(t,r,i){super(t);this.plugin=r;this.onSubmit=i;this.template=""}onOpen(){this.setTitle("Add startup template");let{contentEl:t}=this;this.modalEl.addClass("templater-startup-template-modal");let r=new jt.Setting(t).setName("Template").setDesc("Enter a template path, e.g. meta/templates/daily.md").addText(n=>{new Xe(n.inputEl,this.plugin,ge.TemplateFiles),n.onChange(a=>{this.template=a})}),i=t.createDiv("modal-button-container");new jt.ButtonComponent(i).setButtonText("Done").setCta().onClick(async()=>{if(!this.template){r.setErrorMessage("Template cannot be empty");return}await this.onSubmit(this.template),this.close()}),new jt.ButtonComponent(i).setButtonText("Cancel").onClick(()=>this.close())}onClose(){this.contentEl.empty()}};var Gt=$(require("obsidian")),rn=class extends Gt.Modal{constructor(t,r,i,n){super(t);this.onSubmit=i;this.validateName=n;this.name=r.name,this.command=r.command}onOpen(){this.setTitle("User function"),this.modalEl.addClass("templater-system-command-modal");let{contentEl:t}=this,r=new Gt.Setting(t).setName("Function name").addText(i=>{i.setPlaceholder("Function name").setValue(this.name).onChange(n=>{this.name=n})});new Gt.Setting(t).setName("System command").addTextArea(i=>{i.setPlaceholder("System command").setValue(this.command).onChange(n=>{this.command=n}),i.inputEl.setAttr("rows",4)}),new Gt.Setting(t).addButton(i=>i.setButtonText("Done").setCta().onClick(async()=>{let n=this.name?this.validateName(this.name):"Function name cannot be empty";if(n){r.setErrorMessage(n);return}await this.onSubmit(this.name,this.command),this.close()})).addButton(i=>i.setButtonText("Cancel").onClick(()=>this.close()))}onClose(){this.contentEl.empty()}};var Tt=$(require("obsidian"));var nn=class extends Tt.Modal{constructor(t,r,i,n,a){super(t);this.plugin=r;this.onSubmit=n;this.validateTemplate=a;this.template=i.template,this.insert_enabled=i.insert_enabled,this.create_enabled=i.create_enabled}onOpen(){this.setTitle("Template hotkey"),this.modalEl.addClass("templater-template-hotkey-modal");let{contentEl:t}=this,r=new Tt.Setting(t).setName("Template").setDesc("Enter a template path, e.g. meta/templates/daily.md").addText(n=>{new Xe(n.inputEl,this.plugin,ge.TemplateFiles),n.setPlaceholder("Template").setValue(this.template).onChange(a=>{this.template=a})}),i=new Tt.Setting(t).setName("Insert command").setDesc("Adds a command that inserts this template into the active file.").addToggle(n=>{n.setValue(this.insert_enabled).onChange(a=>{this.insert_enabled=a})});new Tt.Setting(t).setName("Create command").setDesc("Adds a command that creates a new note from this template.").addToggle(n=>{n.setValue(this.create_enabled).onChange(a=>{this.create_enabled=a})}),new Tt.Setting(t).addButton(n=>n.setButtonText("Done").setCta().onClick(async()=>{if(!this.template){r.setErrorMessage("Template cannot be empty");return}let a=this.validateTemplate(this.template);if(a){r.setErrorMessage(a);return}if(!this.insert_enabled&&!this.create_enabled){i.setErrorMessage("At least one command must be enabled");return}await this.onSubmit({template:this.template,insert_enabled:this.insert_enabled,create_enabled:this.create_enabled}),this.close()})).addButton(n=>n.setButtonText("Cancel").onClick(()=>this.close()))}onClose(){this.contentEl.empty()}};var Ze;(function(a){a.Off="0",a.RenderDescriptionParameterReturn="1",a.RenderDescriptionParameterList="2",a.RenderDescriptionReturn="3",a.RenderDescriptionOnly="4"})(Ze||(Ze={}));function Ia(e){return isBoolean(e)?e:[Ze.RenderDescriptionParameterReturn,Ze.RenderDescriptionReturn].includes(e)}function Na(e){return isBoolean(e)?e:[Ze.RenderDescriptionParameterReturn,Ze.RenderDescriptionParameterList].includes(e)}function Da(e){return isBoolean(e)?e:e!=Ze.Off}var an={trigger_on_file_creation:!1,enable_startup_templates:!1,enable_system_commands:!1},sn="templater-local-settings";function Ve(e){let t=e.loadLocalStorage(sn);return Object.assign({},an,t??{})}function Ma(e,t,r){let i=e.loadLocalStorage(sn)??{};e.saveLocalStorage(sn,{...i,[t]:r})}function Fa(e,t,r){let i=t.split(".").map(s=>isNaN(parseInt(s,10))?s:parseInt(s,10)),n=i.length-1,a=e;for(let[s,c]of i.entries())s===n?a[c]=r:(a[c]==null&&(a[c]=typeof i[s+1]=="number"?[]:{}),a=a[c])}function Ba(e,t,r){let i=t.split(".").reduce((n,a)=>n?.[a],e);return i===void 0?r:i}function Et(e){return typeof e=="string"?{template:e,insert_enabled:!0,create_enabled:!0}:{template:typeof e?.template=="string"?e.template:"",insert_enabled:e?.insert_enabled??!0,create_enabled:e?.create_enabled??!0}}function on(e){return e.insert_enabled&&e.create_enabled?e.template:{template:e.template,insert_enabled:e.insert_enabled,create_enabled:e.create_enabled}}function Oa(e){let t=[];return e.insert_enabled&&t.push("Insert"),e.create_enabled&&t.push("Create"),t.length>0?t.join(", "):"None"}var et=$(require("obsidian"));var cn=class extends et.SettingPage{constructor(t,r){super();this.userScripts=[];this.pluginSettingTab=t,this.plugin=r}loadUserScripts(){let t=je(()=>Re(this.plugin.app,this.plugin.settings.user_scripts_folder),"User scripts folder doesn't exist");this.userScripts=Array.isArray(t)?t.filter(r=>r.extension==="js"):[]}openUserScriptsFolderInDefaultApp(){let t=this.plugin.settings.user_scripts_folder;t&&this.plugin.app.openWithDefaultApp((0,et.normalizePath)(t))}display(){if(this.containerEl.empty(),this.loadUserScripts(),this.plugin.settings.user_scripts_folder&&new et.Setting(this.containerEl).setHeading().addExtraButton(r=>{r.setIcon("folder").setTooltip("Open user scripts folder").onClick(()=>this.openUserScriptsFolderInDefaultApp())}),this.userScripts.length===0){new et.Setting(this.containerEl).setName((()=>{let r=createFragment();return this.plugin.settings.user_scripts_folder||r.append("No user scripts folder set. Please set the user scripts folder on the previous page.",r.createEl("br"),r.createEl("br")),r.append("User scripts are JavaScript files that are loaded as CommonJS modules. You can then call these functions from your templates using ",r.createEl("code",{text:"<% tp.user.file_name() %>"})),r})()).setClass("mod-empty-state");return}let t=new et.SettingGroup(this.containerEl).addClass("mod-list");this.userScripts.forEach(r=>{t.addSetting(i=>{i.setName(`tp.user.${r.basename}`)})})}};var gr={data_version:2,command_timeout:5,templates_folder:"",templates_pairs:[],trigger_on_file_creation_mode:"none",auto_jump_to_cursor:!1,jump_to_cursor_after_file_name:!1,shell_path:"",user_scripts_folder:"",folder_templates:[],file_templates:[],syntax_highlighting:!0,syntax_highlighting_mobile:!1,enabled_templates_hotkeys:[],startup_templates:[],intellisense_render:Ze.RenderDescriptionParameterReturn,ignore_folders_on_creation:[]};var un=class extends ri.PluginSettingTab{constructor(t){super(t.app,t);this.plugin=t;this.icon="templater-icon";this.containerEl.addEventListener("click",i=>{i.target&&"href"in i.target&&i.target.href&&typeof i.target.href=="string"&&i.stopPropagation()},!0);let r=(0,ri.debounce)(()=>this.update(),200,!0);t.registerEvent(this.app.vault.on("create",r)),t.registerEvent(this.app.vault.on("delete",r)),t.registerEvent(this.app.vault.on("rename",r))}isLocalSettingsKey(t){return t in an}getControlValue(t){return this.isLocalSettingsKey(t)?Ve(this.plugin.app)[t]:Ba(this.plugin.settings,t)}async setControlValue(t,r){let i={enable_startup_templates:{title:"Enable startup templates",warning:"This can be dangerous if you set a startup template with unknown/unsafe content. Make sure that every startup template's content is safe."},trigger_on_file_creation:{title:"Trigger Templater on new file creation",warning:"This can be dangerous if you create new files with unknown / unsafe content on creation. Make sure that every new file's content is safe on creation."},enable_system_commands:{title:"Enable user system command functions",warning:"It can be dangerous to execute arbitrary system commands from untrusted sources. Only run system commands that you understand, from trusted sources."}};if(this.isLocalSettingsKey(t)&&r===!0&&t in i){let n=i[t];new Qi(this.app,n.title,n.warning,async()=>{await this.commitControlValue(t,r)}).open(),this.update();return}await this.commitControlValue(t,r)}async commitControlValue(t,r){this.isLocalSettingsKey(t)?Ma(this.plugin.app,t,r):Fa(this.plugin.settings,t,r),["trigger_on_file_creation","trigger_on_file_creation_mode","enable_startup_templates","enable_system_commands"].contains(t)&&this.update(),await this.plugin.save_settings()}getSettingDefinitions(){let t=[],r=Ve(this.plugin.app);return t.push({type:"group",items:[{name:"Internal variables and functions",desc:(()=>{let i=createFragment();return i.append("Templater provides multiples predefined variables / functions that you can use.",i.createEl("br"),"Check the ",i.createEl("a",{href:"https://silentvoid13.github.io/Templater/",text:"documentation"})," to get a list of all the available internal variables / functions."),i})()},{name:"Template folder location",desc:"Files in this folder will be available as templates.",control:{type:"folder",key:"templates_folder"}},{type:"page",name:"Template hotkeys",desc:(()=>{let i=createFragment();return i.append("Bind templates to ",i.createEl("a",{href:"https://obsidian.md/help/plugins/command-palette",text:"commands"}),". Bind commands to ",i.createEl("a",{href:"https://obsidian.md/help/hotkeys",text:"hotkeys"}),' in "Hotkeys" settings.'),i})(),items:[{name:"No template folder set. Please set the template folder location on the previous page.",searchable:!1,visible:()=>!this.plugin.settings.templates_folder},this.templateHotkeysGroup()]},{name:"Automatic jump to cursor",desc:(()=>{let i=createFragment();return i.append("Automatically triggers ",i.createEl("code",{text:"tp.file.cursor"})," after inserting a template.",i.createEl("br"),"You can also set a hotkey to manually trigger ",i.createEl("code",{text:"tp.file.cursor"}),"."),i})(),control:{type:"toggle",key:"auto_jump_to_cursor"}},{name:"Jump to note content after creating note",desc:"When creating a new note from a template, skip the rename prompt and immediately move the cursor to the note body.",control:{type:"toggle",key:"jump_to_cursor_after_file_name"}}]}),t.push({type:"group",heading:"Syntax highlighting",items:[{name:"Syntax highlighting on desktop",desc:"Adds syntax highlighting for Templater commands in edit mode.",control:{type:"toggle",key:"syntax_highlighting"}},{name:"Syntax highlighting on mobile",desc:"Adds syntax highlighting for Templater commands in edit mode on mobile. Use with caution: this may break live preview on mobile platforms.",control:{type:"toggle",key:"syntax_highlighting_mobile"}}]}),t.push({type:"group",heading:"File creation",items:this.fileCreationGroup(r)}),t.push({type:"group",heading:"Startup templates",items:[{name:"Enable startup templates",desc:createFragment(i=>{i.append("Enables templates to run automatically when Templater starts.",createEl("br"),createEl("br"),createSpan({text:"This setting is stored on this device only and must be enabled separately on each device.",cls:"mod-warning"}))}),control:{type:"toggle",key:"enable_startup_templates"}},{type:"page",name:"Startup templates",desc:"Templates that run once when Templater starts. These output nothing and are useful for setting up event hooks.",items:[this.startupTemplatesGroup()],visible:()=>r.enable_startup_templates}]}),t.push({type:"group",heading:"User scripts",items:this.userScriptItems()}),t.push({type:"group",heading:"User system commands",items:this.systemCommandItems(r)}),t}fileCreationGroup(t){let r=createFragment();r.append("Templater will listen for the new file creation event, and, if it matches a rule you've set, replace every command it finds in the new file's content. ","This makes Templater compatible with other plugins like the Daily note core plugin, Calendar plugin, Review plugin, Note refactor plugin, etc. ",createEl("br"),createEl("br"),createSpan({text:"This setting is stored on this device only and must be enabled separately on each device.",cls:"mod-warning"}));let i=createEl("ul");i.appendChild(createEl("li",{text:"None: Do not auto apply templates. Templater will still listen for the new file creation event and replace every command it finds in the new file's content."})),i.appendChild(createEl("li",{text:"Folder templates: Apply templates based on folder structure."})),i.appendChild(createEl("li",{text:"File regex templates: Apply templates based on regex file name patterns."}));let n=createFragment();n.append("Choose the matching mode for triggering templates on file creation.",n.createEl("br"),i);let a=createFragment();a.append("If there is a match, Templater will apply the corresponding template to the new file.",a.createEl("br"),"The most specific (deepest) matching folder wins, so a rule for a subfolder takes precedence over a rule for its parent.",a.createEl("br"),"Add a rule for ",a.createEl("code",{text:"/"})," if you need a catch-all.");let s=createFragment();return s.append("File regex templates are applied based on the regex file path patterns you define.",s.createEl("br"),"File regex templates are processed in order, so if a file matches multiple regex templates, only the first match will be applied.",s.createEl("br"),"Add a rule for ",s.createEl("code",{text:".*"})," if you need a catch-all."),[{name:"Trigger Templater on new file creation",desc:r,control:{type:"toggle",key:"trigger_on_file_creation"}},{type:"page",name:"Excluded folders",desc:"New files created in these folders will never trigger Templater.",items:[this.ignoreFoldersGroup()],visible:()=>t.trigger_on_file_creation},{name:"Template matching mode",desc:n,control:{type:"dropdown",key:"trigger_on_file_creation_mode",options:{none:"None",folder:"Folder templates",regex:"File regex templates"}},visible:()=>t.trigger_on_file_creation},{type:"page",name:"Folder templates",desc:a,items:[this.folderTemplatesGroup()],visible:()=>t.trigger_on_file_creation&&this.plugin.settings.trigger_on_file_creation_mode==="folder"},{type:"page",name:"File regex templates",desc:s,items:[this.fileTemplatesGroup()],visible:()=>t.trigger_on_file_creation&&this.plugin.settings.trigger_on_file_creation_mode==="regex"}]}templateHotkeysGroup(){let t=(r,i,n)=>{new nn(this.app,this.plugin,r,i,a=>{if(this.plugin.settings.enabled_templates_hotkeys.some((s,c)=>Et(s).template===a&&c!==n))return"This template already has a hotkey"}).open()};return{type:"list",addItem:{name:"Add template hotkey",action:()=>{t({template:"",insert_enabled:!0,create_enabled:!0},async r=>{this.plugin.settings.enabled_templates_hotkeys.push(on(r)),this.plugin.command_handler.sync_template_hotkeys(),this.update(),await this.plugin.save_settings()})}},onDelete:r=>{this.plugin.settings.enabled_templates_hotkeys.splice(r,1),this.plugin.command_handler.sync_template_hotkeys(),this.update(),this.plugin.save_settings()},emptyState:"No template hotkeys added.",items:this.plugin.settings.enabled_templates_hotkeys.map((r,i)=>{let n=Et(r);return{name:n.template,desc:Oa(n),searchable:!1,action:()=>{t(n,async a=>{this.plugin.settings.enabled_templates_hotkeys[i]=on(a),this.plugin.command_handler.sync_template_hotkeys(),this.update(),await this.plugin.save_settings()},i)}}})}}ignoreFoldersGroup(){return{type:"list",addItem:{name:"Add folder",action:()=>{new en(this.app,t=>{this.plugin.settings.ignore_folders_on_creation.push({folder:t}),this.update(),this.plugin.save_settings()}).open()}},onDelete:t=>{this.plugin.settings.ignore_folders_on_creation.splice(t,1),this.update(),this.plugin.save_settings()},emptyState:"No exclusions added.",items:this.plugin.settings.ignore_folders_on_creation.map(t=>({name:t.folder,searchable:!1}))}}folderTemplatesGroup(){let t=(r,i,n)=>{new Zi(this.app,this.plugin,r,i,a=>{if(this.plugin.settings.folder_templates.some((s,c)=>s.folder===a&&c!==n))return"This folder already has a template associated with it"}).open()};return{type:"list",addItem:{name:"Add folder template",action:()=>{t({folder:"",template:""},(r,i)=>{this.plugin.settings.folder_templates.push({folder:r,template:i}),this.update(),this.plugin.save_settings()})}},onReorder:(r,i)=>{Wi(this.plugin.settings.folder_templates,r,i),this.update(),this.plugin.save_settings()},onDelete:r=>{this.plugin.settings.folder_templates.splice(r,1),this.update(),this.plugin.save_settings()},emptyState:"No folder templates added.",items:this.plugin.settings.folder_templates.map((r,i)=>({name:r.folder,desc:r.template,action:()=>{t({folder:r.folder,template:r.template},async(n,a)=>{this.plugin.settings.folder_templates[i].folder=n,this.plugin.settings.folder_templates[i].template=a,this.update(),await this.plugin.save_settings()},i)}}))}}fileTemplatesGroup(){let t=(r,i)=>{new Xi(this.app,this.plugin,r,i).open()};return{type:"list",addItem:{name:"Add file regex template",action:()=>{t({regex:"",template:""},(r,i)=>{this.plugin.settings.file_templates.push({regex:r,template:i}),this.update(),this.plugin.save_settings()})}},onReorder:(r,i)=>{Wi(this.plugin.settings.file_templates,r,i),this.update(),this.plugin.save_settings()},onDelete:r=>{this.plugin.settings.file_templates.splice(r,1),this.update(),this.plugin.save_settings()},emptyState:"No file regex templates added.",items:this.plugin.settings.file_templates.map((r,i)=>({name:r.regex,desc:r.template,action:()=>{t({regex:r.regex,template:r.template},async(n,a)=>{this.plugin.settings.file_templates[i].regex=n,this.plugin.settings.file_templates[i].template=a,this.update(),await this.plugin.save_settings()})}}))}}startupTemplatesGroup(){return{type:"list",addItem:{name:"Add new startup template",action:()=>{new tn(this.app,this.plugin,t=>{this.plugin.settings.startup_templates.push(t),this.update(),this.plugin.save_settings()}).open()}},onDelete:t=>{this.plugin.settings.startup_templates.splice(t,1),this.update(),this.plugin.save_settings()},emptyState:"No startup templates added.",items:this.plugin.settings.startup_templates.map(t=>({name:t,searchable:!1}))}}userScriptItems(){let t=[];return t.push({name:"User scripts folder",desc:(()=>{let r=createFragment();return r.append("All JavaScript files in this folder will be loaded as CommonJS modules, to import custom user functions.",r.createEl("br"),"The folder needs to be accessible from the vault.",r.createEl("br"),"Check the ",r.createEl("a",{href:"https://silentvoid13.github.io/Templater/",text:"documentation"})," for more information."),r})(),control:{type:"folder",key:"user_scripts_folder"}}),t.push({name:"User script intellisense",desc:"Determine how you'd like to have user script intellisense render. Note values will not render if not in the script.",control:{type:"dropdown",key:"intellisense_render",options:{0:"Turn off intellisense",1:"Render method description, parameters list, and return",2:"Render method description and parameters list",3:"Render method description and return",4:"Render method description"}}}),t.push({type:"page",name:"User scripts",searchable:!1,page:()=>new cn(this,this.plugin)}),t}systemCommandItems(t){let r=createFragment();return r.append("Full path to the shell binary to execute the command with.",r.createEl("br"),"This setting is optional and will default to the system's default shell if not specified.",r.createEl("br"),"You can use forward slashes (",r.createEl("code",{text:"/"}),") as path separators on all platforms if in doubt."),[{name:"Enable user system command functions",desc:createFragment(i=>{i.append("Allows you to create user functions linked to system commands.",createEl("br"),createEl("br"),createSpan({text:"This setting is stored on this device only and must be enabled separately on each device.",cls:"mod-warning"}))}),control:{type:"toggle",key:"enable_system_commands"}},{name:"Timeout",desc:"Maximum timeout in seconds for a system command.",control:{type:"number",key:"command_timeout",validate:i=>{if(isNaN(i)||i<=0)return"Timeout must be a positive number"}},visible:()=>t.enable_system_commands},{name:"Shell binary location",desc:r,control:{type:"text",key:"shell_path",placeholder:"/bin/bash"},visible:()=>t.enable_system_commands},{type:"page",name:"User system command functions",items:[this.systemCommandPairsGroup()],visible:()=>t.enable_system_commands}]}systemCommandPairsGroup(){let t=(r,i,n)=>{new rn(this.app,r,i,a=>{if(this.plugin.settings.templates_pairs.some((s,c)=>s[0]===a&&c!==n))return"This function name is already in use"}).open()};return{type:"list",addItem:{name:"Add new user function",action:()=>{t({name:"",command:""},(r,i)=>{this.plugin.settings.templates_pairs.push([r,i]),this.update(),this.plugin.save_settings()})}},onDelete:r=>{this.plugin.settings.templates_pairs.splice(r,1),this.update(),this.plugin.save_settings()},emptyState:"No user functions added.",items:this.plugin.settings.templates_pairs.map((r,i)=>({name:r[0],desc:r[1]||void 0,searchable:!1,action:()=>{t({name:r[0],command:r[1]},async(n,a)=>{this.plugin.settings.templates_pairs[i][0]=n,this.plugin.settings.templates_pairs[i][1]=a,this.update(),await this.plugin.save_settings()},i)}}))}}};function qa(e){return!!(e&&typeof e=="object"&&!("data_version"in e))}function La(e){return qa(e)?oc(e):{settings:Object.assign({},gr,e),affectedSecuritySettings:[],wasMigrated:!1}}function oc(e){let t=[];e.trigger_on_file_creation===!0&&t.push("'Trigger on file creation'"),e.enable_system_commands===!0&&t.push("'Enable system commands'"),Array.isArray(e.startup_templates)&&e.startup_templates.some(n=>n!=="")&&t.push("'Enable startup templates'");let r=e.enable_folder_templates===!0?"folder":e.enable_file_templates===!0?"regex":e.trigger_on_file_creation_mode??"none",i=Object.assign({},gr,e,{data_version:2,trigger_on_file_creation_mode:r,folder_templates:(e.folder_templates??[]).filter(n=>n.folder||n.template),file_templates:(e.file_templates??[]).filter(n=>n.template!==""),templates_pairs:(e.templates_pairs??[]).filter(([n,a])=>n||a),enabled_templates_hotkeys:(e.enabled_templates_hotkeys??[]).filter(n=>Et(n).template),startup_templates:(e.startup_templates??[]).filter(n=>n),ignore_folders_on_creation:(e.ignore_folders_on_creation??[]).filter(n=>n.folder)});typeof e.intellisense_render=="number"&&(i.intellisense_render=String(e.intellisense_render));for(let n of["trigger_on_file_creation","enable_system_commands","enable_folder_templates","enable_file_templates"])delete i[n];return{settings:i,affectedSecuritySettings:t,wasMigrated:!0}}var ii=$(require("obsidian"));var Yt;(function(r){r[r.InsertTemplate=0]="InsertTemplate",r[r.CreateNoteTemplate=1]="CreateNoteTemplate"})(Yt||(Yt={}));var ln=class extends ii.FuzzySuggestModal{constructor(t){super(t.app);this.plugin=t,this.setPlaceholder("Type name of a template..."),this.containerEl.addClass("templater-fuzzy-suggester-modal")}getItems(){if(!this.plugin.settings.templates_folder)return this.app.vault.getMarkdownFiles();let t=je(()=>Re(this.plugin.app,this.plugin.settings.templates_folder),`Couldn't retrieve template files from templates folder ${this.plugin.settings.templates_folder}`);return t||[]}getItemText(t){let r=t.path;if(t.path.startsWith(this.plugin.settings.templates_folder)&&(0,ii.normalizePath)(this.plugin.settings.templates_folder)!="/"){let i=this.plugin.settings.templates_folder.length,n;i===0?n=0:this.plugin.settings.templates_folder.endsWith("/")?n=i:n=i+1,r=t.path.slice(n)}return r.split(".").slice(0,-1).join(".")}onChooseItem(t){switch(this.open_mode){case 0:this.plugin.templater.append_template_to_active_file(t);break;case 1:this.plugin.templater.create_new_note_from_template(t,this.creation_folder);break}}start(){try{this.open()}catch(t){le(t instanceof Error?t:new Error(String(t)))}}insert_template(){this.open_mode=0,this.start()}create_new_note_from_template(t){this.creation_folder=t,this.open_mode=1,this.start()}};var Ra="Error_MobileUnsupportedTemplate",Va='';var X=$(require("obsidian"));var tt=$(require("obsidian"));var he=class{constructor(t){this.plugin=t;this.static_functions=new Map;this.dynamic_functions=new Map}getName(){return this.name}async init(){await this.create_static_templates(),this.static_object=Object.fromEntries(this.static_functions)}async generate_object(t){return this.config=t,await this.create_dynamic_templates(),{...this.static_object,...Object.fromEntries(this.dynamic_functions)}}};var pn=class extends he{constructor(){super(...arguments);this.name="date"}async create_static_templates(){this.static_functions.set("now",this.generate_now()),this.static_functions.set("tomorrow",this.generate_tomorrow()),this.static_functions.set("weekday",this.generate_weekday()),this.static_functions.set("yesterday",this.generate_yesterday())}async create_dynamic_templates(){}async teardown(){}generate_now(){return(t="YYYY-MM-DD",r,i,n)=>{if(i&&!(0,tt.moment)(i,n).isValid())throw new C("Invalid reference date format, try specifying one with the argument 'reference_format'");let a;return typeof r=="string"?a=tt.moment.duration(r):typeof r=="number"&&(a=tt.moment.duration(r,"days")),(0,tt.moment)(i,n).add(a).format(t)}}generate_tomorrow(){return(t="YYYY-MM-DD")=>(0,tt.moment)().add(1,"days").format(t)}generate_weekday(){return(t="YYYY-MM-DD",r,i,n)=>{if(i&&!(0,tt.moment)(i,n).isValid())throw new C("Invalid reference date format, try specifying one with the argument 'reference_format'");return(0,tt.moment)(i,n).weekday(r).format(t)}}generate_yesterday(){return(t="YYYY-MM-DD")=>(0,tt.moment)().add(-1,"days").format(t)}};var ee=$(require("obsidian"));var Ha=10,fn=class extends he{constructor(){super(...arguments);this.name="file";this.include_depth=0;this.create_new_depth=0;this.linkpath_regex=new RegExp("^\\[\\[(.*)\\]\\]$")}async create_static_templates(){this.static_functions.set("creation_date",this.generate_creation_date()),this.static_functions.set("create_new",this.generate_create_new()),this.static_functions.set("cursor",this.generate_cursor()),this.static_functions.set("cursor_append",this.generate_cursor_append()),this.static_functions.set("exists",this.generate_exists()),this.static_functions.set("find_tfile",this.generate_find_tfile()),this.static_functions.set("folder",this.generate_folder()),this.static_functions.set("include",this.generate_include()),this.static_functions.set("last_modified_date",this.generate_last_modified_date()),this.static_functions.set("move",this.generate_move()),this.static_functions.set("path",this.generate_path()),this.static_functions.set("rename",this.generate_rename()),this.static_functions.set("selection",this.generate_selection())}async create_dynamic_templates(){this.dynamic_functions.set("content",await this.generate_content()),this.dynamic_functions.set("tags",this.generate_tags()),this.dynamic_functions.set("title",this.generate_title())}async teardown(){}async generate_content(){return await this.plugin.app.vault.read(this.config.target_file)}generate_create_new(){return async(t,r,i=!1,n)=>{if(this.create_new_depth+=1,this.create_new_depth>Ha)throw this.create_new_depth=0,new C("Reached create_new depth limit (max = 10)");let a=await this.plugin.templater.create_new_note_from_template(t,n,r,i);return this.create_new_depth-=1,a}}generate_creation_date(){return(t="YYYY-MM-DD HH:mm")=>(0,ee.moment)(this.config.target_file.stat.ctime).format(t)}generate_cursor(){return t=>`<% tp.file.cursor(${t??""}) %>`}generate_cursor_append(){return t=>{let r=this.plugin.app.workspace.activeEditor;if(!r||!r.editor){le(new C("No active editor, can't append to cursor."));return}return r.editor.getDoc().replaceSelection(t),""}}generate_exists(){return async t=>{let r=(0,ee.normalizePath)(t);return await this.plugin.app.vault.exists(r)}}generate_find_tfile(){return t=>{let r=(0,ee.normalizePath)(t);return this.plugin.app.metadataCache.getFirstLinkpathDest(r,"")}}generate_folder(){return(t=!1)=>{let r=this.config.target_file.parent;if(!(r instanceof ee.TFolder))return"";let i;return t?i=r.path:i=r.name,i}}generate_include(){return async t=>{if(this.include_depth+=1,this.include_depth>Ha)throw this.include_depth-=1,new C("Reached inclusion depth limit (max = 10)");let r;if(t instanceof ee.TFile)r=await this.plugin.app.vault.read(t);else{let i;if((i=this.linkpath_regex.exec(t))===null)throw this.include_depth-=1,new C("Invalid file format, provide an obsidian link between quotes.");let{path:n,subpath:a}=(0,ee.parseLinktext)(i[1]),s=this.plugin.app.metadataCache.getFirstLinkpathDest(n,"");if(!s)throw this.include_depth-=1,new C(`File ${t} doesn't exist`);if(r=await this.plugin.app.vault.read(s),a){let c=this.plugin.app.metadataCache.getFileCache(s);if(c){let l=(0,ee.resolveSubpath)(c,a);l&&(r=r.slice(l.start.offset,l.end?.offset))}}}try{let i=await this.plugin.templater.parser.parse_commands(r,this.plugin.templater.current_functions_object);return this.include_depth-=1,i}catch(i){throw this.include_depth-=1,i}}}generate_last_modified_date(){return(t="YYYY-MM-DD HH:mm")=>(0,ee.moment)(this.config.target_file.stat.mtime).format(t)}generate_move(){return async(t,r)=>{let i=r||this.config.target_file,n=(0,ee.normalizePath)(`${t}.${i.extension}`),a=n.replace(/\\/g,"/").split("/");if(a.pop(),a.length){let s=a.join("/");this.plugin.app.vault.getAbstractFileByPath(s)||await this.plugin.app.vault.createFolder(s)}return await this.plugin.app.fileManager.renameFile(i,n),""}}generate_path(){return(t=!1)=>{let r="";if(ee.Platform.isMobile){let i=this.plugin.app.vault.adapter.fs.uri,n=this.plugin.app.vault.adapter.basePath;r=`${i}/${n}`}else if(this.plugin.app.vault.adapter instanceof ee.FileSystemAdapter)r=this.plugin.app.vault.adapter.getBasePath();else throw new C("app.vault is not a FileSystemAdapter instance");return t?this.config.target_file.path:`${r}/${this.config.target_file.path}`}}generate_rename(){return async t=>{if(t.match(/[\\/:]+/g))throw new C("File name cannot contain any of these characters: \\ / :");let r=this.config.target_file.parent;if(!(r instanceof ee.TFolder))return"";let i=(0,ee.normalizePath)(`${r.path}/${t}.${this.config.target_file.extension}`);return await this.plugin.app.fileManager.renameFile(this.config.target_file,i),""}}generate_selection(){return()=>{let t=this.plugin.app.workspace.activeEditor;if(!t||!t.editor)throw new C("Active editor is null, can't read selection.");return t.editor.getSelection()}}generate_tags(){let t=this.plugin.app.metadataCache.getFileCache(this.config.target_file);return t?(0,ee.getAllTags)(t):null}generate_title(){return this.config.target_file.basename}};var ni=$(require("obsidian"));var Ka="en",Ua={en:"https://raw.githubusercontent.com/Zachatoo/quotes-database/refs/heads/main/quotes.json",es:"https://raw.githubusercontent.com/wulflo/frases-inventario/refs/heads/main/quotes.json"},hn=class extends he{constructor(){super(...arguments);this.name="web"}async create_static_templates(){this.static_functions.set("daily_quote",this.generate_daily_quote()),this.static_functions.set("request",this.generate_request()),this.static_functions.set("random_picture",this.generate_random_picture())}async create_dynamic_templates(){}async teardown(){}async getRequest(t){try{let r=await(0,ni.requestUrl)(t);if(r.status<200&&r.status>=300)throw new C("Error performing GET request");return r}catch{throw new C("Error performing GET request")}}generate_daily_quote(){return async t=>{try{let r=(t||(0,ni.getLanguage)()||Ka).toLowerCase(),i=Ua[r]??Ua[Ka],a=(await this.getRequest(i)).json,s=a[Math.floor(Math.random()*a.length)],{quote:c,author:l}=s;return`> [!quote] ${c} > \u2014 ${l}`}catch{return new C("Error generating daily quote"),"Error generating daily quote"}}}generate_random_picture(){return async(t,r,i=!1)=>{try{let n=await this.getRequest(`https://templater-unsplash-2.fly.dev/${r?"?q="+r:""}`).then(s=>s.json),a=n.full;if(t&&!i)if(t.includes("x")){let[s,c]=t.split("x");a=a.concat(`&w=${s}&h=${c}`)}else a=a.concat(`&w=${t}`);return i?`![photo by ${n.photog}(${n.photogUrl}) on Unsplash|${t}](${a})`:`![photo by ${n.photog}(${n.photogUrl}) on Unsplash](${a})`}catch{return new C("Error generating random picture"),"Error generating random picture"}}}generate_request(){return async(t,r)=>{try{let n=(await this.getRequest(t)).json;return r&&n?r.split(".").reduce((a,s)=>{if(Object.prototype.hasOwnProperty.call(a,s))return a[s];throw new Error(`Path ${r} not found in the JSON response`)},n):n}catch(i){throw console.error(i),new C("Error fetching and extracting value")}}}};var dn=class extends he{constructor(){super(...arguments);this.name="hooks";this.event_refs=[]}async create_static_templates(){this.static_functions.set("on_all_templates_executed",this.generate_on_all_templates_executed())}async create_dynamic_templates(){}async teardown(){this.event_refs.forEach(t=>{t.e.offref(t)}),this.event_refs=[]}generate_on_all_templates_executed(){return t=>{let r=this.plugin.app.workspace.on("templater:all-templates-executed",async()=>{await lt(1),t()});r&&this.event_refs.push(r)}}};var mn=class extends he{constructor(){super(...arguments);this.name="frontmatter"}async create_static_templates(){}async create_dynamic_templates(){let t=this.plugin.app.metadataCache.getFileCache(this.config.target_file);this.dynamic_functions=new Map(Object.entries(t?.frontmatter||{}))}async teardown(){}};var He=$(require("obsidian"));var gn=class extends He.Modal{constructor(t,r,i,n,a){super(t);this.prompt_text=r;this.default_value=i;this.multi_line=n;this.select_default_value=a;this.submitted=!1}onOpen(){this.titleEl.setText(this.prompt_text),this.createForm()}onClose(){this.contentEl.empty(),this.submitted||this.reject(new C("Cancelled prompt"))}createForm(){let t=this.contentEl.createDiv();t.addClass("templater-prompt-div");let r;this.multi_line?r=new He.TextAreaComponent(t):r=new He.TextComponent(t);let i=this.contentEl.createDiv();i.addClass("templater-button-div");let n=new He.ButtonComponent(i);n.buttonEl.addClass("mod-cta"),n.setButtonText("Submit").onClick(a=>{this.resolveAndClose(a)}),this.value=this.default_value??"",r.inputEl.addClass("templater-prompt-input"),r.setPlaceholder("Type text here"),r.setValue(this.value),r.onChange(a=>this.value=a),r.inputEl.focus(),this.select_default_value&&r.inputEl.select(),r.inputEl.addEventListener("keydown",a=>this.enterCallback(a))}enterCallback(t){t.isComposing||t.keyCode===229||(this.multi_line?He.Platform.isDesktop&&t.key==="Enter"&&!t.shiftKey&&this.resolveAndClose(t):t.key==="Enter"&&this.resolveAndClose(t))}resolveAndClose(t){this.submitted=!0,t.preventDefault(),this.resolve(this.value),this.close()}async openAndGetValue(t,r){this.resolve=t,this.reject=r,this.open()}};var $a=$(require("obsidian")),An=class extends $a.FuzzySuggestModal{constructor(t,r,i,n,a,s){super(t);this.text_items=r;this.items=i;this.default_value=s;this.submitted=!1;this.containerEl.addClass("templater-suggester-modal"),this.setPlaceholder(n),a&&(this.limit=a)}getItems(){return this.items}onOpen(){super.onOpen(),this.default_value!==void 0&&(this.inputEl.value=this.getItemText(this.default_value),this.inputEl.dispatchEvent(new InputEvent("input")))}onClose(){this.submitted||this.reject(new C("Cancelled prompt"))}selectSuggestion(t,r){this.submitted=!0,this.close(),this.onChooseSuggestion(t,r)}getItemText(t){return this.text_items instanceof Function?this.text_items(t):this.text_items[this.items.indexOf(t)]||"Undefined Text Item"}onChooseItem(t){this.resolve(t)}async openAndGetValue(t,r){this.resolve=t,this.reject=r,this.open()}};var be=$(require("obsidian")),_n=class extends be.Modal{constructor(t,r,i,n,a,s){super(t);this.text_items=r;this.items=i;this.submitted=!1;this.selectedItems=[];this.setTitle(n),this.listEl=this.contentEl.createDiv("templater-multisuggester-list");let c=this.contentEl.createDiv("templater-multisuggester-div"),l=new be.TextComponent(c);l.inputEl.addClass("templater-multisuggester-input"),this.suggester=new Ga(t,l.inputEl,m=>this.getItemText(m),i,a).onSelect(m=>this.onChooseItem(m));let h=this.contentEl.createDiv("modal-button-container");new be.ButtonComponent(h).setButtonText("Save").setCta().onClick(()=>this.save()),new be.ButtonComponent(h).setButtonText("Cancel").onClick(()=>this.close()),s&&(this.selectedItems=s)}onOpen(){this.processSelectedItems()}display(){this.listEl.empty(),this.selectedItems.forEach(t=>{let r=this.listEl.createDiv("mobile-option-setting-item");r.createSpan("mobile-option-setting-item-name").setText(this.getItemText(t)),r.createDiv("clickable-icon mobile-option-setting-item-option-icon",i=>{(0,be.setIcon)(i,"lucide-x"),i.addEventListener("click",()=>{this.onRemoveItem(t)})})})}getItemText(t){return this.text_items instanceof Function?this.text_items(t):this.text_items[this.items.indexOf(t)]||"Undefined Text Item"}onChooseItem(t){this.selectedItems.push(t),this.processSelectedItems()}processSelectedItems(){let t=this.items.filter(r=>!this.selectedItems.some(i=>i===r));this.suggester.setItems(t),this.display()}onRemoveItem(t){this.selectedItems=this.selectedItems.filter(i=>i!==t);let r=this.items.filter(i=>!this.selectedItems.some(n=>n===i));this.suggester.setItems(r),this.display()}save(){this.submitted=!0,this.close(),this.resolve(this.selectedItems)}onClose(){this.submitted||this.reject(new C("Cancelled prompt"))}async openAndGetValue(t,r){this.resolve=t,this.reject=r,this.open()}},Ga=class extends be.AbstractInputSuggest{constructor(t,r,i,n,a){super(t,r);this.getItemText=i;this.items=n;a&&(this.limit=a)}getSuggestions(t){let r=(0,be.prepareFuzzySearch)(t);return this.items.reduce((i,n)=>{let a=this.getItemText(n);return r(a)&&i.push(n),i},[])}renderSuggestion(t,r){r.createDiv("suggestion-content").setText(this.getItemText(t))}setItems(t){this.items=t}selectSuggestion(t,r){this.setValue(""),this.close(),super.selectSuggestion(t,r)}};var xn=class extends he{constructor(){super(...arguments);this.name="system"}async create_static_templates(){this.static_functions.set("clipboard",this.generate_clipboard()),this.static_functions.set("prompt",this.generate_prompt()),this.static_functions.set("suggester",this.generate_suggester()),this.static_functions.set("multi_suggester",this.generate_multi_suggester())}async create_dynamic_templates(){}async teardown(){}generate_clipboard(){return async()=>await navigator.clipboard.readText()}generate_prompt(){return async(t,r,i=!1,n=!1,a=!1)=>{let s=new gn(this.plugin.app,t,r,n,a),c=new Promise((l,h)=>{s.openAndGetValue(l,h)});try{return await c}catch(l){if(i)throw l;return null}}}generate_suggester(){return async(t,r,i=!1,n="",a,s)=>{let c=new An(this.plugin.app,t,r,n,a,s),l=new Promise((h,m)=>{c.openAndGetValue(h,m)});try{return await l}catch(h){if(i)throw h;return null}}}generate_multi_suggester(){return async(t,r,i=!1,n="",a,s)=>{let c=new _n(this.plugin.app,t,r,n,a,s),l=new Promise((h,m)=>{c.openAndGetValue(h,m)});try{return await l}catch(h){if(i)throw h;return[]}}}};var yn=class extends he{constructor(){super(...arguments);this.name="config"}async create_static_templates(){}async create_dynamic_templates(){}async teardown(){}async generate_object(t){return t}};var vn=class{constructor(t){this.plugin=t;this.modules_array=[];this.modules_array.push(new pn(this.plugin)),this.modules_array.push(new fn(this.plugin)),this.modules_array.push(new hn(this.plugin)),this.modules_array.push(new mn(this.plugin)),this.modules_array.push(new dn(this.plugin)),this.modules_array.push(new xn(this.plugin)),this.modules_array.push(new yn(this.plugin))}async init(){for(let t of this.modules_array)await t.init()}async teardown(){for(let t of this.modules_array)await t.teardown()}async generate_object(t){let r={};for(let i of this.modules_array)r[i.getName()]=await i.generate_object(t);return r}};var Ar=$(require("obsidian"));var bn=class{constructor(t){this.plugin=t;if(Ar.Platform.isMobile||!(this.plugin.app.vault.adapter instanceof Ar.FileSystemAdapter))this.cwd="";else{this.cwd=this.plugin.app.vault.adapter.getBasePath();let{promisify:r}=require("util"),{exec:i}=require("child_process");this.exec_promise=r(i)}}async generate_system_functions(t){let r=new Map,i=await this.plugin.templater.functions_generator.generate_object(t,Ke.INTERNAL);for(let n of this.plugin.settings.templates_pairs){let a=n[0],s=n[1];!a||!s||(Ar.Platform.isMobile?r.set(a,()=>new Promise(c=>c(Ra))):(s=await this.plugin.templater.parser.parse_commands(s,i),r.set(a,async c=>{if(!this.exec_promise)return"";let l={...process.env,...c},h={timeout:this.plugin.settings.command_timeout*1e3,cwd:this.cwd,env:l,...this.plugin.settings.shell_path&&{shell:this.plugin.settings.shell_path}};try{let{stdout:m}=await this.exec_promise(s,h);return m.trimRight()}catch(m){throw new C(`Error with User Template ${a}`,m instanceof Error?m.message:String(m))}})))}return r}async generate_object(t){let r=await this.generate_system_functions(t);return Object.fromEntries(r)}};var wn=class{constructor(t){this.plugin=t}async generate_user_script_functions(){let t=new Map,r=je(()=>Re(this.plugin.app,this.plugin.settings.user_scripts_folder),`Couldn't find user script folder "${this.plugin.settings.user_scripts_folder}"`);if(!r)return new Map;for(let i of r)i.extension.toLowerCase()==="js"&&await this.load_user_script_function(i,t);return t}async load_user_script_function(t,r){let i=l=>window.require&&window.require(l),n={},a={exports:n},s=await this.plugin.app.vault.read(t);try{window.eval("(function anonymous(require, module, exports){"+s+` })`)(i,a,n)}catch(l){throw new C(`Failed to load user script at "${t.path}".`,l instanceof Error?l.message:String(l))}let c=n.default??a.exports;if(!c)throw new C(`Failed to load user script at "${t.path}". No exports detected.`);if(typeof c=="function")r.set(t.basename,c);else if(typeof c=="object"&&c!==null){if(!Object.values(c).every(h=>typeof h=="function"))throw new C(`Exported object in "${t.path}" must contain only functions.`);r.set(t.basename,c)}else throw new C(`Invalid export in "${t.path}". Must be a function or object of functions.`)}async generate_object(){let t=await this.generate_user_script_functions();return Object.fromEntries(t)}};var kn=class{constructor(t){this.plugin=t;this.user_system_functions=new bn(t),this.user_script_functions=new wn(t)}async generate_object(t){let r={},i={};return Ve(this.plugin.app).enable_system_commands&&(r=await this.user_system_functions.generate_object(t)),this.plugin.settings.user_scripts_folder&&(i=await this.user_script_functions.generate_object()),{...r,...i}}};var cc=$(require("obsidian")),Ke;(function(r){r[r.INTERNAL=0]="INTERNAL",r[r.USER_INTERNAL=1]="USER_INTERNAL"})(Ke||(Ke={}));var jn=class{constructor(t){this.plugin=t;this.internal_functions=new vn(this.plugin),this.user_functions=new kn(this.plugin)}async init(){await this.internal_functions.init()}async teardown(){await this.internal_functions.teardown()}additional_functions(){return{app:this.plugin.app,obsidian:cc}}async generate_object(t,r=1){let i={},n=this.additional_functions(),a=await this.internal_functions.generate_object(t),s={};switch(Object.assign(i,n),r){case 0:Object.assign(i,a);break;case 1:s=await this.user_functions.generate_object(t),Object.assign(i,{...a,user:s});break}return i}};var _c={},S,Fe=new Array(32).fill(void 0);Fe.push(void 0,null,!0,!1);function we(e){return Fe[e]}var _r=Fe.length;function uc(e){e<36||(Fe[e]=_r,_r=e)}function Tn(e){let t=we(e);return uc(e),t}var Ya=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Ya.decode();var ai=new Uint8Array;function si(){return ai.byteLength===0&&(ai=new Uint8Array(S.memory.buffer)),ai}function ht(e,t){return Ya.decode(si().subarray(e,e+t))}function dt(e){_r===Fe.length&&Fe.push(Fe.length+1);let t=_r;return _r=Fe[t],Fe[t]=e,t}var Be=0,oi=new TextEncoder("utf-8"),lc=typeof oi.encodeInto=="function"?function(e,t){return oi.encodeInto(e,t)}:function(e,t){let r=oi.encode(e);return t.set(r),{read:e.length,written:r.length}};function rt(e,t,r){if(r===void 0){let c=oi.encode(e),l=t(c.length);return si().subarray(l,l+c.length).set(c),Be=c.length,l}let i=e.length,n=t(i),a=si(),s=0;for(;s127)break;a[n+s]=c}if(s!==i){s!==0&&(e=e.slice(s)),n=r(n,i,i=s+e.length*3);let c=si().subarray(n+s,n+i);s+=lc(e,c).written}return Be=s,n}function pc(e){return e==null}var ci=new Int32Array;function ke(){return ci.byteLength===0&&(ci=new Int32Array(S.memory.buffer)),ci}function En(e){let t=typeof e;if(t=="number"||t=="boolean"||e==null)return`${e}`;if(t=="string")return`"${e}"`;if(t=="symbol"){let n=e.description;return n==null?"Symbol":`Symbol(${n})`}if(t=="function"){let n=e.name;return typeof n=="string"&&n.length>0?`Function(${n})`:"Function"}if(Array.isArray(e)){let n=e.length,a="[";n>0&&(a+=En(e[0]));for(let s=1;s1)i=r[1];else return toString.call(e);if(i=="Object")try{return"Object("+JSON.stringify(e)+")"}catch{return"Object"}return e instanceof Error?`${e.name}: ${e.message} ${e.stack}`:i}function fc(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`);return e.ptr}var ui=32;function hc(e){if(ui==1)throw new Error("out of js stack");return Fe[--ui]=e,ui}function Sn(e,t){try{return e.apply(this,t)}catch(r){S.__wbindgen_exn_store(dt(r))}}var St=class{static __wrap(t){let r=Object.create(St.prototype);return r.ptr=t,r}__destroy_into_raw(){let t=this.ptr;return this.ptr=0,t}free(){let t=this.__destroy_into_raw();S.__wbg_parserconfig_free(t)}get interpolate(){let t=S.__wbg_get_parserconfig_interpolate(this.ptr);return String.fromCodePoint(t)}set interpolate(t){S.__wbg_set_parserconfig_interpolate(this.ptr,t.codePointAt(0))}get execution(){let t=S.__wbg_get_parserconfig_execution(this.ptr);return String.fromCodePoint(t)}set execution(t){S.__wbg_set_parserconfig_execution(this.ptr,t.codePointAt(0))}get single_whitespace(){let t=S.__wbg_get_parserconfig_single_whitespace(this.ptr);return String.fromCodePoint(t)}set single_whitespace(t){S.__wbg_set_parserconfig_single_whitespace(this.ptr,t.codePointAt(0))}get multiple_whitespace(){let t=S.__wbg_get_parserconfig_multiple_whitespace(this.ptr);return String.fromCodePoint(t)}set multiple_whitespace(t){S.__wbg_set_parserconfig_multiple_whitespace(this.ptr,t.codePointAt(0))}constructor(t,r,i,n,a,s,c){let l=rt(t,S.__wbindgen_malloc,S.__wbindgen_realloc),h=Be,m=rt(r,S.__wbindgen_malloc,S.__wbindgen_realloc),_=Be,k=rt(c,S.__wbindgen_malloc,S.__wbindgen_realloc),F=Be,O=S.parserconfig_new(l,h,m,_,i.codePointAt(0),n.codePointAt(0),a.codePointAt(0),s.codePointAt(0),k,F);return St.__wrap(O)}get opening_tag(){try{let i=S.__wbindgen_add_to_stack_pointer(-16);S.parserconfig_opening_tag(i,this.ptr);var t=ke()[i/4+0],r=ke()[i/4+1];return ht(t,r)}finally{S.__wbindgen_add_to_stack_pointer(16),S.__wbindgen_free(t,r)}}set opening_tag(t){let r=rt(t,S.__wbindgen_malloc,S.__wbindgen_realloc),i=Be;S.parserconfig_set_opening_tag(this.ptr,r,i)}get closing_tag(){try{let i=S.__wbindgen_add_to_stack_pointer(-16);S.parserconfig_closing_tag(i,this.ptr);var t=ke()[i/4+0],r=ke()[i/4+1];return ht(t,r)}finally{S.__wbindgen_add_to_stack_pointer(16),S.__wbindgen_free(t,r)}}set closing_tag(t){let r=rt(t,S.__wbindgen_malloc,S.__wbindgen_realloc),i=Be;S.parserconfig_set_closing_tag(this.ptr,r,i)}get global_var(){try{let i=S.__wbindgen_add_to_stack_pointer(-16);S.parserconfig_global_var(i,this.ptr);var t=ke()[i/4+0],r=ke()[i/4+1];return ht(t,r)}finally{S.__wbindgen_add_to_stack_pointer(16),S.__wbindgen_free(t,r)}}set global_var(t){let r=rt(t,S.__wbindgen_malloc,S.__wbindgen_realloc),i=Be;S.parserconfig_set_global_var(this.ptr,r,i)}},zt=class{static __wrap(t){let r=Object.create(zt.prototype);return r.ptr=t,r}__destroy_into_raw(){let t=this.ptr;return this.ptr=0,t}free(){let t=this.__destroy_into_raw();S.__wbg_renderer_free(t)}constructor(t){fc(t,St);var r=t.ptr;t.ptr=0;let i=S.renderer_new(r);return zt.__wrap(i)}render_content(t,r){try{let s=S.__wbindgen_add_to_stack_pointer(-16),c=rt(t,S.__wbindgen_malloc,S.__wbindgen_realloc),l=Be;S.renderer_render_content(s,this.ptr,c,l,hc(r));var i=ke()[s/4+0],n=ke()[s/4+1],a=ke()[s/4+2];if(a)throw Tn(n);return Tn(i)}finally{S.__wbindgen_add_to_stack_pointer(16),Fe[ui++]=void 0}}};async function dc(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function mc(){let e={};return e.wbg={},e.wbg.__wbindgen_object_drop_ref=function(t){Tn(t)},e.wbg.__wbindgen_string_new=function(t,r){let i=ht(t,r);return dt(i)},e.wbg.__wbindgen_string_get=function(t,r){let i=we(r),n=typeof i=="string"?i:void 0;var a=pc(n)?0:rt(n,S.__wbindgen_malloc,S.__wbindgen_realloc),s=Be;ke()[t/4+1]=s,ke()[t/4+0]=a},e.wbg.__wbg_call_97ae9d8645dc388b=function(){return Sn(function(t,r){let i=we(t).call(we(r));return dt(i)},arguments)},e.wbg.__wbg_new_8d2af00bc1e329ee=function(t,r){let i=new Error(ht(t,r));return dt(i)},e.wbg.__wbg_message_fe2af63ccc8985bc=function(t){let r=we(t).message;return dt(r)},e.wbg.__wbg_newwithargs_8fe23e3842840c8e=function(t,r,i,n){let a=new Function(ht(t,r),ht(i,n));return dt(a)},e.wbg.__wbg_call_168da88779e35f61=function(){return Sn(function(t,r,i){let n=we(t).call(we(r),we(i));return dt(n)},arguments)},e.wbg.__wbg_call_3999bee59e9f7719=function(){return Sn(function(t,r,i,n){let a=we(t).call(we(r),we(i),we(n));return dt(a)},arguments)},e.wbg.__wbindgen_debug_string=function(t,r){let i=En(we(r)),n=rt(i,S.__wbindgen_malloc,S.__wbindgen_realloc),a=Be;ke()[t/4+1]=a,ke()[t/4+0]=n},e.wbg.__wbindgen_throw=function(t,r){throw new Error(ht(t,r))},e}function gc(e,t){}function Ac(e,t){return S=e.exports,za.__wbindgen_wasm_module=t,ci=new Int32Array,ai=new Uint8Array,S}async function za(e){typeof e=="undefined"&&(e=new URL("rusty_engine_bg.wasm",_c.url));let t=mc();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e)),gc(t);let{instance:r,module:i}=await dc(await e,t);return Ac(r,i)}var Wa=za;var Ja=Aa("AGFzbQEAAAABvwEaYAJ/fwBgAn9/AX9gAX8Bf2ADf39/AX9gA39/fwBgAX8AYAV/f39/fwBgBH9/f38AYAR/f39/AX9gAABgBX9/f39/AX9gAX8BfmAAAX9gBn9/f39/fwBgB39/f39/f38AYAV/f35/fwBgBX9/fX9/AGAFf398f38AYAR/fn9/AGAFf35/f38AYAR/fX9/AGAEf3x/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gCn9/f39/f39/f38Bf2ACfn8BfwLkAgsDd2JnGl9fd2JpbmRnZW5fb2JqZWN0X2Ryb3BfcmVmAAUDd2JnFV9fd2JpbmRnZW5fc3RyaW5nX25ldwABA3diZxVfX3diaW5kZ2VuX3N0cmluZ19nZXQAAAN3YmcbX193YmdfY2FsbF85N2FlOWQ4NjQ1ZGMzODhiAAEDd2JnGl9fd2JnX25ld184ZDJhZjAwYmMxZTMyOWVlAAEDd2JnHl9fd2JnX21lc3NhZ2VfZmUyYWY2M2NjYzg5ODViYwACA3diZyJfX3diZ19uZXd3aXRoYXJnc184ZmUyM2UzODQyODQwYzhlAAgDd2JnG19fd2JnX2NhbGxfMTY4ZGE4ODc3OWUzNWY2MQADA3diZxtfX3diZ19jYWxsXzM5OTliZWU1OWU5Zjc3MTkACAN3YmcXX193YmluZGdlbl9kZWJ1Z19zdHJpbmcAAAN3YmcQX193YmluZGdlbl90aHJvdwAAA7kBtwECBwAGAgYEBAcBBQMKCAAEBgYAAwcCAAEADgETAQQXAQICAQAAAwcZAQAFAQwABgACAgAAAgAEBAAGAQAAAAAEBw0CAQUEBQYCDBgAAQAAAAQBAQEAAQABBAQEBgMDBwMJAwQIAAAABQkAAgEAAAAABwAAAgICAgAFBQMEFgoGEQ8QAAUHAwIBAgABBQEBCAACAQEBBQEAAgECAgACAQEBAgAJCQICAgIAAAAAAwMDAQECAgsLCwUEBQFwATs7BQMBABEGCQF/AUGAgMAACwfcBRkGbWVtb3J5AgAXX193YmdfcGFyc2VyY29uZmlnX2ZyZWUAUSJfX3diZ19nZXRfcGFyc2VyY29uZmlnX2ludGVycG9sYXRlAH4iX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19pbnRlcnBvbGF0ZQB3IF9fd2JnX2dldF9wYXJzZXJjb25maWdfZXhlY3V0aW9uAH8gX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19leGVjdXRpb24AeChfX3diZ19nZXRfcGFyc2VyY29uZmlnX3NpbmdsZV93aGl0ZXNwYWNlAIABKF9fd2JnX3NldF9wYXJzZXJjb25maWdfc2luZ2xlX3doaXRlc3BhY2UAeSpfX3diZ19nZXRfcGFyc2VyY29uZmlnX211bHRpcGxlX3doaXRlc3BhY2UAgQEqX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19tdWx0aXBsZV93aGl0ZXNwYWNlAHoQcGFyc2VyY29uZmlnX25ldwBVGHBhcnNlcmNvbmZpZ19vcGVuaW5nX3RhZwBGHHBhcnNlcmNvbmZpZ19zZXRfb3BlbmluZ190YWcAYxhwYXJzZXJjb25maWdfY2xvc2luZ190YWcARxxwYXJzZXJjb25maWdfc2V0X2Nsb3NpbmdfdGFnAGQXcGFyc2VyY29uZmlnX2dsb2JhbF92YXIASBtwYXJzZXJjb25maWdfc2V0X2dsb2JhbF92YXIAZRNfX3diZ19yZW5kZXJlcl9mcmVlAE8McmVuZGVyZXJfbmV3ACAXcmVuZGVyZXJfcmVuZGVyX2NvbnRlbnQAORFfX3diaW5kZ2VuX21hbGxvYwB1El9fd2JpbmRnZW5fcmVhbGxvYwCFAR9fX3diaW5kZ2VuX2FkZF90b19zdGFja19wb2ludGVyAKsBD19fd2JpbmRnZW5fZnJlZQCaARRfX3diaW5kZ2VuX2V4bl9zdG9yZQCfAQllAQBBAQs6mAGdAaoBPzzBAZUBlgFOkgGOAWotYsEBwQFnKl3BAXaIAUyJAYgBhwGQAY8BiQGJAYwBigGLAZgBX8EBaKABXo4BvwG+AYQBOElwoQHBAWioAWCjAVclqQGcAcEBwAEK2dYCtwG8IAIPfwF+IwBBEGsiCyQAAkACQCAAQfUBTwRAQYCAfEEIQQgQlwFBFEEIEJcBakEQQQgQlwFqa0F3cUF9aiICQQBBEEEIEJcBQQJ0ayIBIAEgAksbIABNDQIgAEEEakEIEJcBIQRBrK7AACgCAEUNAUEAIARrIQMCQAJAAn9BACAEQYACSQ0AGkEfIARB////B0sNABogBEEGIARBCHZnIgBrdkEBcSAAQQF0a0E+agsiBkECdEG4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EBBBIAQoAgAiBSAAKAIAaiIGQdSDwAApAAA3AAAgBCAFQRBqNgIAIAZBCGpB3IPAACkAADcAACADQQE2AiwgAyABKAIIQShqIgU2AiggAyAANgIYIANB3ABqQQE2AgAgA0ICNwJMIANB8IPAADYCSCADIANBKGo2AlgCQAJAAkACQAJAAkAgA0EYakGYisAAIANByABqEB5FBEAgAigCACEIAkAgAigCCCIBRQ0AIAFBBHQhCkGQhMAAIQZBACEBQQAhBANAAn8gASAIaiIHQQRqIgkgBygCAEUNABoCQCAERQ0AIANBEGogBCgCACAEKAIEQQAgBiAGLQAAQQJGG0EBEBAgA0EIaiADKAIQIAMoAhRBACAHQQ1qIgQgBC0AAEECRhtBABAQIANBGGogAygCCCADKAIMEBIgA0EBNgI0IANBATYCLCADIAU2AiggAyADQRhqNgIwIAMgADYCRCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0HEAGpBmIrAACADQcgAahAeDQUgAygCHEUNACADKAIYEBULIAdBDmohBgJAIAdBDGotAABFBEAgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQfSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcgA0ECNgI0IANBoIXAADYCMCADQQE2AiwgAyAFNgIoIAMgADYCGCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0EYakGYisAAIANByABqEB5FDQFBq4HAAEErIANByABqQdiBwABBqIXAABBSAAsgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQcSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcLQQALIQQgCiABQRBqIgFHDQALIARFDQAgAyAEKAIAIAQoAgRBACAGIAYtAABBAkYbQQEQECADQRhqIAMoAgAgAygCBBASIANBNGpBATYCACADQQE2AiwgAyAFNgIoIAMgA0EYajYCMCADIAA2AkQgA0HcAGpBAjYCACADQgM3AkwgA0GYhMAANgJIIAMgA0EoajYCWCADQcQAakGYisAAIANByABqEB4NBSADKAIcRQ0AIAMoAhgQFQsgAEEEaigCACAAQQhqIgQoAgAiAWtBJ00EQCAAIAFBKBBBIAQoAgAhAQsgBCABQShqNgIAIAAoAgAgAWoiAUHIhcAAKQAANwAAIAFBCGpB0IXAACkAADcAACABQRBqQdiFwAApAAA3AAAgAUEYakHghcAAKQAANwAAIAFBIGpB6IXAACkAADcAACADQTxqQQI2AgAgA0E0akEBNgIAIANBoIXAADYCOCADIAU2AjAgA0EBNgIsIAMgBTYCKCADIAA2AhggA0HcAGoiAUEDNgIAIANCBDcCTCADQZiGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQUgA0EBNgIsIAMgBTYCKCADIAA2AhggAUEBNgIAIANCAjcCTCADQdCGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQYgAkEEaigCAARAIAgQFQsgA0HgAGokAA8LQauBwABBKyADQcgAakHYgcAAQYCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQYSFwAAQUgALQauBwABBKyADQcgAakHYgcAAQdSEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiFwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiGwAAQUgALQauBwABBKyADQcgAakHYgcAAQeCGwAAQUgAL7QkCCH8GfiMAQdAAayIDJAACQAJAAkAQVCIEBEAgA0EgakIANwMAIANBHGpBkIrAADYCACAEIAQpAwAiC0IBfDcDACADQQA2AhggAyALNwMIIAMgBEEIaikDADcDECADQqeAgIDwBDcDSCADQo2AgICgDjcDQCADQoqAgIDgDTcDOCADQtyAgIDACzcDMCADQQhqIANBMGoQGSADQQA2AjggA0IENwMwIAJFBEAgAEEANgIIIABCATcCAEEEIQRBBCEBDAQLIAEgAmohCEEAIQIDQAJ/IAEsAAAiBEF/SgRAIARB/wFxIQQgAUEBagwBCyABLQABQT9xIQUgBEEfcSEGIARBX00EQCAGQQZ0IAVyIQQgAUECagwBCyABLQACQT9xIAVBBnRyIQUgBEFwSQRAIAUgBkEMdHIhBCABQQNqDAELIAZBEnRBgIDwAHEgAS0AA0E/cSAFQQZ0cnIiBEGAgMQA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ASACIANqQQFqIgM2AhAgAyAHT0EAIAMgDE0bRQRAIAYgA08NAQwDCwsgB0EEELUBAAsgASAGNgIQCyABLQAkIAEoAgAiAiABKAIEIgRHckUNASABQQE6ACUgBCACawshAyAIRQ0AIAIgCGohCyADRQRAQQAhAgwBCyADQX9qIgEgAyABIAtqLQAAQQ1GGyECCyAAIAI2AgQgACALNgIAIAVBEGokAAv+BAEKfyMAQTBrIgMkACADQSRqIAE2AgAgA0EDOgAoIANCgICAgIAENwMIIAMgADYCICADQQA2AhggA0EANgIQAkACQAJAIAIoAggiCkUEQCACQRRqKAIAIgRFDQEgAigCACEBIAIoAhAhACAEQX9qQf////8BcUEBaiIHIQQDQCABQQRqKAIAIgUEQCADKAIgIAEoAgAgBSADKAIkKAIMEQMADQQLIAAoAgAgA0EIaiAAQQRqKAIAEQEADQMgAEEIaiEAIAFBCGohASAEQX9qIgQNAAsMAQsgAkEMaigCACIARQ0AIABBBXQhCyAAQX9qQf///z9xQQFqIQcgAigCACEBA0AgAUEEaigCACIABEAgAygCICABKAIAIAAgAygCJCgCDBEDAA0DCyADIAQgCmoiBUEcai0AADoAKCADIAVBBGopAgBCIIk3AwggBUEYaigCACEGIAIoAhAhCEEAIQlBACEAAkACQAJAIAVBFGooAgBBAWsOAgACAQsgBkEDdCAIaiIMKAIEQTdHDQEgDCgCACgCACEGC0EBIQALIAMgBjYCFCADIAA2AhAgBUEQaigCACEAAkACQAJAIAVBDGooAgBBAWsOAgACAQsgAEEDdCAIaiIGKAIEQTdHDQEgBigCACgCACEAC0EBIQkLIAMgADYCHCADIAk2AhggCCAFKAIAQQN0aiIAKAIAIANBCGogACgCBBEBAA0CIAFBCGohASALIARBIGoiBEcNAAsLQQAhACAHIAIoAgRJIgFFDQEgAygCICACKAIAIAdBA3RqQQAgARsiASgCACABKAIEIAMoAiQoAgwRAwBFDQELQQEhAAsgA0EwaiQAIAALwgQBCH8jAEHQAGsiBCQAIARBEGogASACIAMoAgAgA0EIaigCABAOAkACQAJAAkACQAJAIAQoAhBFBEAgBEEeai0AAA0EIARBxABqKAIAIQYgBCgCQCEHIARBHGot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AkAgAUGAAU8EQCACQQA2AgwgAUGAEEkNASABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAAoAggiAyAAQQRqKAIARgR/IAAgAxBAIAAoAggFIAMLIAAoAgBqIAE6AAAgACAAKAIIQQFqNgIIDAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBAshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEEgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJABBAAvVAgEDfyMAQRBrIgIkAAJAAn8CQCABQYABTwRAIAJBADYCDCABQYAQTw0BIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAILIAAoAggiAyAAQQRqKAIARgRAIAAgAxBDIAAoAgghAwsgACADQQFqNgIIIAAoAgAgA2ogAToAAAwCCyABQYCABE8EQCACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQMAQsgAiABQT9xQYABcjoADiACIAFBDHZB4AFyOgAMIAIgAUEGdkE/cUGAAXI6AA1BAwshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEIgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJAAL1wIBA38jAEEQayICJAACQAJ/AkACQCABQYABTwRAIAJBADYCDCABQYAQSQ0BIAFBgIAETw0CIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMMAwsgACgCCCIDIABBBGooAgBGBEAgACADEEMgACgCCCEDCyAAIANBAWo2AgggACgCACADaiABOgAADAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiAC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AiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQRBqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQSxqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEwayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBEGoiBEEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiABQRBqKQIANwMAIAJBIGogAUEIaikCADcDACACIAEpAgA3AxggAkEUakGAjsAAIAJBGGoQHhogA0EIaiAEKAIANgIAIAMgAikDCDcCAAsgAEHoj8AANgIEIAAgAzYCACACQTBqJAALkAEBAn8CQAJ/AkACQAJAAn9BASIDIAFBAEgNABogAigCCEUNAiACKAIEIgQNASABDQNBAQwECyEDQQAhAQwECyACKAIAIARBASABEJkBDAILIAENAEEBDAELIAFBARCeAQsiAgRAIAAgAjYCBEEAIQMMAQsgACABNgIEQQEhAQsgACADNgIAIABBCGogATYCAAunAQECfwJAAkACQAJAAkACQAJAAn8gAgRAQQEiBCABQQBIDQEaIAMoAghFDQMgAygCBCIFDQIgAQ0EDAYLIAAgATYCBEEBCyEEQQAhAQwGCyADKAIAIAUgAiABEJkBIgNFDQIMBAsgAUUNAgsgASACEJ4BIgMNAgsgACABNgIEIAIhAQwCCyACIQMLIAAgAzYCBEEAIQQLIAAgBDYCACAAQQhqIAE2AgALlwEBAX8jAEEQayIGJAAgAQRAIAYgASADIAQgBSACKAIQEQYAIAYoAgAhAQJAIAYoAgQiAyAGKAIIIgJNBEAgASEDDAELIANBAnQhAyACQQJ0IgQEQCABIANBBCAEEJkBIgMNASAEQQQQswEAC0EEIQMgARAVCyAAIAI2AgQgACADNgIAIAZBEGokAA8LQciMwABBMBCsAQALjAEBAn8jAEFAaiIBJAAgAUEANgIIIAFCATcDACABQRBqIAEQfCAAIAFBEGoQNkUEQCABKAIAIAEoAggQBCABKAIEBEAgASgCABAVCwJAIAAoAgBBAUYNACAAQQhqKAIARQ0AIAAoAgQQFQsgAUFAayQADwtB3IfAAEE3IAFBOGpB8IjAAEHgiMAAEFIAC5YBAQF/IwBBQGoiAiQAIAAoAgAhACACQgA3AzggAkE4aiAAEAkgAkEcakEBNgIAIAIgAigCPCIANgIwIAIgADYCLCACIAIoAjg2AiggAkEiNgIkIAJCAjcCDCACQYSNwAA2AgggAiACQShqNgIgIAIgAkEgajYCGCABIAJBCGoQXCACKAIsBEAgAigCKBAVCyACQUBrJAALewEHfwJAIAAEQCAAKAIADQEgAEEANgIAIAAoAgghAiAAKAIMIAAoAhQhBCAAKAIYIQUgACgCMCEGIAAoAjQhByAAKAIEIQEgABAVIAFBJE8EQCABEAALBEAgAhAVCyAFBEAgBBAVCyAHBEAgBhAVCw8LEK0BAAsQrgEAC54BAQJ/IwBBEGsiAyQAIABBFGooAgAhBAJAAn8CQAJAIABBBGooAgAOAgABAwsgBA0CQQAhAEGYjsAADAELIAQNASAAKAIAIgQoAgQhACAEKAIACyEEIAMgADYCBCADIAQ2AgAgA0GckMAAIAEoAgggAiABLQAQEEQACyADQQA2AgQgAyAANgIAIANBiJDAACABKAIIIAIgAS0AEBBEAAtoAQZ/AkAgAARAIAAoAgANASAAQQA2AgAgACgCBCEBIAAoAgggACgCECEDIAAoAhQhBCAAKAIsIQUgACgCMCEGIAAQFQRAIAEQFQsgBARAIAMQFQsgBgRAIAUQFQsPCxCtAQALEK4BAAt9AQF/IwBBQGoiBSQAIAUgATYCDCAFIAA2AgggBSADNgIUIAUgAjYCECAFQSxqQQI2AgAgBUE8akE4NgIAIAVCAjcCHCAFQZCUwAA2AhggBUE0NgI0IAUgBUEwajYCKCAFIAVBEGo2AjggBSAFQQhqNgIwIAVBGGogBBB0AAt8AQF/IAAtAAQhASAALQAFBEAgAUH/AXEhASAAAn9BASABDQAaIAAoAgAiAS0AAEEEcUUEQCABKAIYQaGUwABBAiABQRxqKAIAKAIMEQMADAELIAEoAhhBoJTAAEEBIAFBHGooAgAoAgwRAwALIgE6AAQLIAFB/wFxQQBHC10CAX8BfiMAQRBrIgAkAEGQrsAAKQMAUARAIABCAjcDCCAAQgE3AwAgACkDACEBQaCuwAAgACkDCDcDAEGYrsAAIAE3AwBBkK7AAEIBNwMACyAAQRBqJABBmK7AAAt9AQF/QThBBBCeASIKRQRAQThBBBCzAQALIAogCTYCNCAKIAk2AjAgCiAINgIsIAogBzYCKCAKIAY2AiQgCiAFNgIgIAogBDYCHCAKIAM2AhggCiADNgIUIAogAjYCECAKIAE2AgwgCiABNgIIIAogADYCBCAKQQA2AgAgCgt8AQN/IAAgABC8ASIAQQgQlwEgAGsiAhC6ASEAQbyxwAAgASACayIBNgIAQcSxwAAgADYCACAAIAFBAXI2AgRBCEEIEJcBIQJBFEEIEJcBIQNBEEEIEJcBIQQgACABELoBIAQgAyACQQhramo2AgRB4LHAAEGAgIABNgIAC28BBH8jAEEgayICJABBASEDAkAgACABEDMNACABQRxqKAIAIQQgASgCGCACQRxqQQA2AgAgAkGAk8AANgIYIAJCATcCDCACQYSTwAA2AgggBCACQQhqEB4NACAAQQRqIAEQMyEDCyACQSBqJAAgAwtvAQF/IwBBMGsiAiQAIAIgATYCBCACIAA2AgAgAkEcakECNgIAIAJBLGpBAzYCACACQgI3AgwgAkGklsAANgIIIAJBAzYCJCACIAJBIGo2AhggAiACQQRqNgIoIAIgAjYCICACQQhqQdSWwAAQdAALbwEBfyMAQTBrIgIkACACIAE2AgQgAiAANgIAIAJBHGpBAjYCACACQSxqQQM2AgAgAkICNwIMIAJBuJfAADYCCCACQQM2AiQgAiACQSBqNgIYIAIgAkEEajYCKCACIAI2AiAgAkEIakHIl8AAEHQAC28BAX8jAEEwayICJAAgAiABNgIEIAIgADYCACACQRxqQQI2AgAgAkEsakEDNgIAIAJCAjcCDCACQfSWwAA2AgggAkEDNgIkIAIgAkEgajYCGCACIAJBBGo2AiggAiACNgIgIAJBCGpBhJfAABB0AAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBAzYCACADQgI3AgwgA0HAk8AANgIIIANBAzYCJCADIANBIGo2AhggAyADNgIoIAMgA0EEajYCICADQQhqIAIQdAALVgECfyMAQSBrIgIkACAAQRxqKAIAIQMgACgCGCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCADIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGYisAAIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGAjsAAIAJBCGoQHiACQSBqJAALZwAjAEEwayIBJABB2K3AAC0AAARAIAFBHGpBATYCACABQgI3AgwgAUH0jsAANgIIIAFBAzYCJCABIAA2AiwgASABQSBqNgIYIAEgAUEsajYCICABQQhqQZyPwAAQdAALIAFBMGokAAtZAQF/IwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQbSRwAAgAkEIahAeIAJBIGokAAtnAQJ/IAEoAgAhAwJAAkACQCABQQhqKAIAIgFFBEBBASECDAELIAFBf0wNASABQQEQngEiAkUNAgsgAiADIAEQuQEhAiAAIAE2AgggACABNgIEIAAgAjYCAA8LEHMACyABQQEQswEAC1YBAX8jAEEgayICJAAgAiAANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpBmIrAACACQQhqEB4gAkEgaiQAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQQhqIgMoAgAEQCAAKAIEEBULIAAgATYCBCAAQQA2AgAgAEEMaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQRRqIgMoAgAEQCAAKAIQEBULIAAgATYCECAAQQA2AgAgAEEYaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQTBqIgMoAgAEQCAAKAIsEBULIAAgATYCLCAAQQA2AgAgAEE0aiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8jAEEQayIFJAAgASgCACACKAIAIAMoAgAgBCgCABAIIQEgBUEIahCDASAFKAIMIQIgACAFKAIIIgNBAEc2AgAgACACIAEgAxs2AgQgBUEQaiQAC08BAn8gACgCACIDQQRqKAIAIANBCGoiBCgCACIAayACSQRAIAMgACACEEEgBCgCACEACyADKAIAIABqIAEgAhC5ARogBCAAIAJqNgIAQQALTwECfyAAKAIAIgNBBGooAgAgA0EIaiIEKAIAIgBrIAJJBEAgAyAAIAIQQiAEKAIAIQALIAMoAgAgAGogASACELkBGiAEIAAgAmo2AgBBAAtRAQF/IwBBEGsiBCQAIAEoAgAgAigCACADKAIAEAchASAEQQhqEIMBIAQoAgwhAiAAIAQoAggiA0EARzYCACAAIAIgASADGzYCBCAEQRBqJAALSgECfyAAQQRqKAIAIABBCGoiBCgCACIDayACSQRAIAAgAyACEEEgBCgCACEDCyAAKAIAIANqIAEgAhC5ARogBCACIANqNgIAQQALPwEBfyMAQSBrIgAkACAAQRxqQQA2AgAgAEGwkMAANgIYIABCATcCDCAAQcyQwAA2AgggAEEIakGkkcAAEHQAC0MBA38CQCACRQ0AA0AgAC0AACIEIAEtAAAiBUYEQCAAQQFqIQAgAUEBaiEBIAJBf2oiAg0BDAILCyAEIAVrIQMLIAMLTAECfyMAQRBrIgMkACABKAIAIAIoAgAQAyEBIANBCGoQgwEgAygCDCECIAAgAygCCCIEQQBHNgIAIAAgAiABIAQbNgIEIANBEGokAAtLAAJAAn8gAUGAgMQARwRAQQEgACgCGCABIABBHGooAgAoAhARAQANARoLIAINAUEACw8LIAAoAhggAiADIABBHGooAgAoAgwRAwALRwEBfyMAQSBrIgIkACACQRRqQQA2AgAgAkGAk8AANgIQIAJCATcCBCACQSs2AhwgAiAANgIYIAIgAkEYajYCACACIAEQdAALRgECfyABKAIEIQIgASgCACEDQQhBBBCeASIBRQRAQQhBBBCzAQALIAEgAjYCBCABIAM2AgAgAEH4j8AANgIEIAAgATYCAAs5AQF/IAFBEHZAACECIABBADYCCCAAQQAgAUGAgHxxIAJBf0YiARs2AgQgAEEAIAJBEHQgARs2AgALZAEDfyMAQRBrIgEkACAAKAIMIgJFBEBBmI7AAEHIj8AAEG8ACyAAKAIIIgNFBEBBmI7AAEHYj8AAEG8ACyABIAI2AgggASAANgIEIAEgAzYCACABKAIAIAEoAgQgASgCCBBQAAs/AQF/IwBBIGsiACQAIABBHGpBADYCACAAQcyRwAA2AhggAEIBNwIMIABBjJLAADYCCCAAQQhqQZSSwAAQdAALPgEBfyMAQSBrIgIkACACQQE6ABggAiABNgIUIAIgADYCECACQfyTwAA2AgwgAkGAk8AANgIIIAJBCGoQcgALKwACQCAAQXxLDQAgAEUEQEEEDwsgACAAQX1JQQJ0EJ4BIgBFDQAgAA8LAAsiACMAQRBrIgAkACAAQQhqIAEQfSAAQQhqEFMgAEEQaiQACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEcaiABNgIADwsQrQEACxCuAQALKwACQCAABEAgACgCAA0BIABBADYCACAAQSBqIAE2AgAPCxCtAQALEK4BAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBJGogATYCAA8LEK0BAAsQrgEACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEoaiABNgIADwsQrQEACxCuAQALQAEBfyMAQRBrIgQkACAEIAM2AgwgBCACNgIIIAQgATYCBCAEIAA2AgAgBCgCACAEKAIEIAQoAgggBCgCDBATAAs3ACAAQQM6ACAgAEKAgICAgAQ3AgAgACABNgIYIABBADYCECAAQQA2AgggAEEcakHEh8AANgIACzUBAX8gASgCGEHDjsAAQQsgAUEcaigCACgCDBEDACECIABBADoABSAAIAI6AAQgACABNgIACyUAAkAgAARAIAAoAgBBf0YNASAAQRxqKAIADwsQrQEACxCuAQALJQACQCAABEAgACgCAEF/Rg0BIABBIGooAgAPCxCtAQALEK4BAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEkaigCAA8LEK0BAAsQrgEACyUAAkAgAARAIAAoAgBBf0YNASAAQShqKAIADwsQrQEACxCuAQALJwAgACAAKAIEQQFxIAFyQQJyNgIEIAAgAWoiACAAKAIEQQFyNgIECzoBAn9B3K3AAC0AACEBQdytwABBADoAAEHgrcAAKAIAIQJB4K3AAEEANgIAIAAgAjYCBCAAIAE2AgALIAEBfwJAIAAoAgQiAUUNACAAQQhqKAIARQ0AIAEQFQsLHwACQCABQXxNBEAgACABQQQgAhCZASIADQELAAsgAAsjACACIAIoAgRBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAslACAARQRAQciMwABBMBCsAQALIAAgAiADIAQgBSABKAIQEQoACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQgACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQcACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERUACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERIACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERQACx4AIAAgAUEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsUACAAQQRqKAIABEAgACgCABAVCwshACAARQRAQciMwABBMBCsAQALIAAgAiADIAEoAhARBAALHwAgAEUEQEHIjMAAQTAQrAEACyAAIAIgASgCEBEBAAsZAQF/IAAoAhAiAQR/IAEFIABBFGooAgALCxkAIAAoAgAiACgCACAAQQhqKAIAIAEQtwELEgBBAEEZIABBAXZrIABBH0YbCxYAIAAgAUEBcjYCBCAAIAFqIAE2AgALHAAgASgCGEHgpsAAQQUgAUEcaigCACgCDBEDAAsTACAAKAIAIgBBJE8EQCAAEAALCxAAIAAgAWpBf2pBACABa3ELFAAgACgCACAAQQhqKAIAIAEQtwELDAAgACABIAIgAxAYCwsAIAEEQCAAEBULCw8AIABBAXQiAEEAIABrcgsUACAAKAIAIAEg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BAAAAAQAAAARAAAAEgAAABMAAABjYW5ub3QgYWNjZXNzIGEgVGhyZWFkIExvY2FsIFN0b3JhZ2UgdmFsdWUgZHVyaW5nIG9yIGFmdGVyIGRlc3RydWN0aW9uL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwAAAHYFEABPAAAApQEAABoAAAAUAAAAAAAAAAEAAAAVAAAAL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwDoBRAATwAAALcBAAAmAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGRlc3Ryb3llZCBhbHJlYWR5SnNWYWx1ZSgpAAAAeAYQAAgAAACABhAAAQAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3QAACQAAAAEAAAABAAAACUAAAAmAAAAJwAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWVBY2Nlc3NFcnJvcm1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQKAAAATgcQABUAAABjBxAADgAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc4QHEAAYAAAAUgEAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzrAcQABwAAABGAgAAHwAAAKwHEAAcAAAARwIAAB4AAAAoAAAADAAAAAQAAAApAAAAJAAAAAgAAAAEAAAAKgAAACsAAAAQAAAABAAAACwAAAAtAAAAJAAAAAgAAAAEAAAALgAAAC8AAABIYXNoIHRhYmxlIGNhcGFjaXR5IG92ZXJmbG93MAgQABwAAAAvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9oYXNoYnJvd24tMC4xMi4zL3NyYy9yYXcvbW9kLnJzAFQIEABPAAAAWgAAACgAAAAwAAAABAAAAAQAAAAxAAAAMgAAADMAAAAwAAAAAAAAAAEAAAAHAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc2NhcGFjaXR5IG92ZXJmbG93AAAA+AgQABEAAADcCBAAHAAAAAYCAAAFAAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9ybGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAFcJEAAYAAAAZAIAACAAAAAuLgAAgAkQAAIAAABpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzICBidXQgdGhlIGluZGV4IGlzIAAAjAkQACAAAACsCRAAEgAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUAOQAAAAAAAAABAAAAOgAAAGA6IACACRAAAAAAAA0KEAACAAAAfSB9MHgwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIHN0YXJ0IGluZGV4ICBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCAAAADtChAAEgAAAP8KEAAiAAAAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5ycwA0CxAAHwAAADQAAAAFAAAAcmFuZ2UgZW5kIGluZGV4IGQLEAAQAAAA/woQACIAAAA0CxAAHwAAAEkAAAAFAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAlAsQABYAAACqCxAADQAAADQLEAAfAAAAXAAAAAUAAABsaWJyYXJ5L2NvcmUvc3JjL3N0ci9wYXR0ZXJuLnJzANgLEAAfAAAAGgYAABUAAADYCxAAHwAAAEgGAAAVAAAA2AsQAB8AAABJBgAA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");var Cn=class{async init(){await Wa(Ja);let t=new St("<%","%>","\0","*","-","_","tR");this.renderer=new zt(t)}async parse_commands(t,r){return this.renderer.render_content(t,r)}};var Ue;(function(s){s[s.CreateNewFromTemplate=0]="CreateNewFromTemplate",s[s.AppendActiveFile=1]="AppendActiveFile",s[s.OverwriteFile=2]="OverwriteFile",s[s.OverwriteActiveFile=3]="OverwriteActiveFile",s[s.DynamicProcessor=4]="DynamicProcessor",s[s.StartupTemplate=5]="StartupTemplate"})(Ue||(Ue={}));var Wt=class{constructor(t){this.plugin=t;this.functions_generator=new jn(this.plugin),this.parser=new Cn}async setup(){this.files_with_pending_templates=new Set,await this.parser.init(),await this.functions_generator.init(),this.plugin.registerMarkdownPostProcessor((t,r)=>this.process_dynamic_templates(t,r))}create_running_config(t,r,i){let n=ft(this.plugin.app);return{template_file:t,target_file:r,run_mode:i,active_file:n}}async read_and_parse_template(t){if(!(t.template_file instanceof X.TFile))throw new C("Template file is not a TFile");let r=await this.plugin.app.vault.read(t.template_file);return this.parse_template(t,r)}async parse_template(t,r){let i=await this.functions_generator.generate_object(t,Ke.USER_INTERNAL);return this.current_functions_object=i,await this.parser.parse_commands(r,i)}start_templater_task(t){this.files_with_pending_templates.add(t)}async end_templater_task(t){this.files_with_pending_templates.delete(t),this.files_with_pending_templates.size===0&&(this.plugin.app.workspace.trigger("templater:all-templates-executed"),await this.functions_generator.teardown())}async create_new_note_from_template(t,r,i,n=!0){if(!r)switch(this.plugin.app.vault.getConfig("newFileLocation")){case"current":{let _=ft(this.plugin.app);_&&(r=_.parent instanceof X.TFolder?_.parent:void 0);break}case"folder":r=this.plugin.app.fileManager.getNewFileParent("");break;case"root":r=this.plugin.app.vault.getRoot();break;default:break}let a=t instanceof X.TFile&&t.extension||"md",s=await de(async()=>{let m=r instanceof X.TFolder?r.path:r,_=this.plugin.app.vault.getAvailablePath((0,X.normalizePath)(`${m??""}/${i||"Untitled"}`),a),k=Xr(_);return k&&!this.plugin.app.vault.getAbstractFileByPathInsensitive(k)&&await this.plugin.app.vault.createFolder(k),this.plugin.app.vault.create(_,"")},`Couldn't create ${a} file.`);if(s==null)return;let{path:c}=s;this.start_templater_task(c);let l,h;if(t instanceof X.TFile?(l=this.create_running_config(t,s,0),h=await de(async()=>this.read_and_parse_template(l),"Template parsing error, aborting.")):(l=this.create_running_config(void 0,s,0),h=await de(async()=>this.parse_template(l,t),"Template parsing error, aborting.")),h==null){await this.plugin.app.vault.delete(s),await this.end_templater_task(c);return}if(await this.plugin.app.vault.modify(s,h),this.plugin.app.workspace.trigger("templater:new-note-from-template",{file:s,content:h}),n){let m=this.plugin.app.workspace.getLeaf(!1);if(!m){le(new C("No active leaf"));return}await m.openFile(s,{state:{mode:"source"}}),await this.plugin.editor_handler.jump_to_next_cursor_location(s,!0),this.plugin.settings.jump_to_cursor_after_file_name||m.setEphemeralState({rename:"all"})}return await this.end_templater_task(c),s}async append_template_to_active_file(t){let r=this.plugin.app.workspace.getActiveViewOfType(X.MarkdownView),i=this.plugin.app.workspace.activeEditor;if(!i||!i.file||!i.editor){le(new C("No active editor, can't append templates."));return}let{path:n}=i.file;this.start_templater_task(n);let a=this.create_running_config(t,i.file,1),s=await de(async()=>this.read_and_parse_template(a),"Template parsing error, aborting.");if(s==null){await this.end_templater_task(n);return}let{content:c,frontmatter:l}=dr(s),m=i.editor.getDoc(),_=m.listSelections();m.replaceSelection(c),r&&(Object.keys(l).length>0&&r instanceof X.MarkdownView&&typeof r.metadataEditor?.insertProperties=="function"&&r.metadataEditor.insertProperties(l),await lt(100),await r.save()),this.plugin.app.workspace.trigger("templater:template-appended",{view:r,editor:i,content:s,oldSelections:_,newSelections:m.listSelections()}),await this.plugin.editor_handler.jump_to_next_cursor_location(i.file,!0),await this.end_templater_task(n)}async write_template_to_file(t,r){let{path:i}=r;this.start_templater_task(i);let n=this.plugin.app.workspace.getActiveViewOfType(X.MarkdownView),a=this.plugin.app.workspace.activeEditor,s=ft(this.plugin.app),c=this.create_running_config(t,r,2),l=await de(async()=>this.read_and_parse_template(c),"Template parsing error, aborting.");if(l==null){await this.end_templater_task(i);return}let{content:h,frontmatter:m}=dr(l);if(s?.path===r.path&&a&&a.editor&&n){let _="",{content:k,frontmatter:F}=dr(a.editor.getValue());Zr(F,m),Object.keys(F).length>0&&(_+=`--- ${(0,X.stringifyYaml)(F)}--- `),_+=k+h,a.editor.setValue(_),a.editor.setSelection({line:0,ch:0},{line:0,ch:0}),await lt(100),await n.save()}else await this.plugin.app.vault.process(r,_=>{let k="",{content:F,frontmatter:O}=dr(_);return Zr(O,m),Object.keys(O).length>0&&(k+=`--- ${(0,X.stringifyYaml)(O)}--- `),k+=F+h,l=k,k});this.plugin.app.workspace.trigger("templater:new-note-from-template",{file:r,content:l}),await this.plugin.editor_handler.jump_to_next_cursor_location(r,!0),this.plugin.settings.jump_to_cursor_after_file_name&&a?.editor&&a.editor.focus(),await this.end_templater_task(i)}async overwrite_active_file_commands(){let t=this.plugin.app.workspace.activeEditor;if(!t||!t.file){le(new C("Active editor is null, can't overwrite content"));return}await this.overwrite_file_commands(t.file,!0)}async overwrite_file_commands(t,r=!1){let{path:i}=t;this.start_templater_task(i);let n=this.create_running_config(t,t,r?3:2),a=await de(async()=>this.read_and_parse_template(n),"Template parsing error, aborting.");if(a==null){await this.end_templater_task(i);return}await this.plugin.app.vault.modify(t,a),this.plugin.app.workspace.trigger("templater:overwrite-file",{file:t,content:a}),await this.plugin.editor_handler.jump_to_next_cursor_location(t,!0),await this.end_templater_task(i)}async process_dynamic_templates(t,r){let i=Ea(),n=activeDocument.createNodeIterator(t,NodeFilter.SHOW_TEXT),a,s=!1,c;for(;a=n.nextNode();){let l=a.nodeValue;if(l!==null){let h=i.exec(l);if(h!==null){let m=this.plugin.app.metadataCache.getFirstLinkpathDest("",r.sourcePath);if(!m||!(m instanceof X.TFile))return;if(!s){s=!0;let _=this.create_running_config(m,m,4);c=await this.functions_generator.generate_object(_,Ke.USER_INTERNAL),this.current_functions_object=c}}for(;h!=null;){let m=h[1]+h[2],_=await de(async()=>await this.parser.parse_commands(m,c),`Command Parsing error in dynamic command '${m}'`);if(_==null)return;let k=i.lastIndex-h[0].length,F=i.lastIndex;l=l.substring(0,k)+_+l.substring(F),i.lastIndex+=_.length-h[0].length,h=i.exec(l)}a.nodeValue=l}}}get_new_file_template_for_folder(t){let r=t;for(;r instanceof X.TFolder;){let i=r,n=this.plugin.settings.folder_templates.find(a=>a.folder==i.path);if(n&&n.template)return n.template;r=r.parent}}get_new_file_template_for_file(t){let r=this.plugin.settings.file_templates.find(i=>new RegExp(i.regex).test(t.path));if(r&&r.template)return r.template}static async on_file_creation(t,r,i){if(!Ve(r).trigger_on_file_creation||!(i instanceof X.TFile)||i.extension!=="md")return;let n=(0,X.normalizePath)(t.plugin.settings.templates_folder);if(i.path.includes(n)&&n!=="/")return;for(let l of t.plugin.settings.ignore_folders_on_creation){let h=(0,X.normalizePath)(l.folder);if(i.path.startsWith(h)&&h!=="")return}if(await lt(300),t.files_with_pending_templates.has(i.path))return;let a=await r.vault.read(i),s=(0,X.getFrontMatterInfo)(a),c=a.length-s.contentStart;if(c==0&&t.plugin.settings.trigger_on_file_creation_mode==="folder"){if(!(i.parent instanceof X.TFolder))return;let l=t.get_new_file_template_for_folder(i.parent);if(!l)return;let h=await de(async()=>pt(r,l),`Couldn't find template ${l}`);if(h==null)return;await t.write_template_to_file(h,i)}else if(c==0&&t.plugin.settings.trigger_on_file_creation_mode==="regex"){let l=t.get_new_file_template_for_file(i);if(!l)return;let h=await de(async()=>pt(r,l),`Couldn't find template ${l}`);if(h==null)return;await t.write_template_to_file(h,i)}else{let l=1e5;i.stat.size<=l?await t.overwrite_file_commands(i):console.debug(`Templater skipped parsing ${i.path} because file size exceeds ${l}`)}}async execute_startup_scripts(){if(!!Ve(this.plugin.app).enable_startup_templates)for(let t of this.plugin.settings.startup_templates){if(!t)continue;let r=je(()=>pt(this.plugin.app,t),`Couldn't find startup template "${t}"`);if(!r)continue;let{path:i}=r;this.start_templater_task(i);let n=this.create_running_config(r,r,5);await de(async()=>this.read_and_parse_template(n),"Startup Template parsing error, aborting."),await this.end_templater_task(i)}}};var Jt=$(require("obsidian"));var li=class{constructor(t,r){this.plugin=t;this.templater=r}async setup(){this.plugin.app.workspace.onLayoutReady(async()=>{if(Ve(this.plugin.app).trigger_on_file_creation&&this.plugin.app.vault.getConfig("openBehavior")==="daily"){let r=this.plugin.app.internalPlugins.getEnabledPluginById("daily-notes");if(r){let{folder:i,format:n}=r.options,a=(0,Jt.normalizePath)(`${i}/${(0,Jt.moment)().format(n)}.md`),s=ft(this.plugin.app);s?.path===a&&await Wt.on_file_creation(this.templater,this.plugin.app,s)}}this.plugin.registerEvent(this.plugin.app.vault.on("create",t=>Wt.on_file_creation(this.templater,this.plugin.app,t)))}),await this.update_syntax_highlighting(),this.update_file_menu()}async update_syntax_highlighting(){let t=this.plugin.editor_handler.desktopShouldHighlight(),r=this.plugin.editor_handler.mobileShouldHighlight();t||r?await this.plugin.editor_handler.enable_highlighter():await this.plugin.editor_handler.disable_highlighter()}update_file_menu(){this.plugin.registerEvent(this.plugin.app.workspace.on("file-menu",(t,r)=>{r instanceof Jt.TFolder&&t.addItem(i=>{i.setTitle("Create new note from template").setIcon("templater-icon").onClick(()=>{this.plugin.fuzzy_suggester.create_new_note_from_template(r)})})}))}};var Ct=$(require("obsidian"));var Pn=class{constructor(t){this.plugin=t;this.registered_hotkey_templates=new Set}setup(){this.plugin.addCommand({id:"insert-templater",name:"Open insert template modal",icon:"templater-icon",hotkeys:Ct.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"e"}],callback:()=>{this.plugin.fuzzy_suggester.insert_template()}}),this.plugin.addCommand({id:"replace-in-file-templater",name:"Replace templates in the active file",icon:"templater-icon",hotkeys:Ct.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"r"}],callback:async()=>{await this.plugin.templater.overwrite_active_file_commands()}}),this.plugin.addCommand({id:"jump-to-next-cursor-location",name:"Jump to next cursor location",icon:"text-cursor",hotkeys:[{modifiers:["Alt"],key:"Tab"}],callback:async()=>{await this.plugin.editor_handler.jump_to_next_cursor_location()}}),this.plugin.addCommand({id:"create-new-note-from-template",name:"Create new note from template",icon:"templater-icon",hotkeys:Ct.Platform.isMacOS?void 0:[{modifiers:["Alt"],key:"n"}],callback:()=>{this.plugin.fuzzy_suggester.create_new_note_from_template()}}),this.register_templates_hotkeys(),this.register_cli_handler()}register_templates_hotkeys(){this.plugin.settings.enabled_templates_hotkeys.forEach(t=>{this.add_template_hotkey(t)})}sync_template_hotkeys(){for(let t of[...this.registered_hotkey_templates])this.remove_template_hotkey(t);this.register_templates_hotkeys()}add_template_hotkey(t){let r=Et(t),i=r.template;if(!i)return;this.remove_template_hotkey(i);let n=this.plugin.settings.templates_folder?this.plugin.settings.templates_folder.length+1:0,a=i.slice(n,-3),s=()=>je(()=>pt(this.plugin.app,i),"Couldn't find the template file associated with this hotkey");r.insert_enabled&&this.plugin.addCommand({id:i,name:`Insert ${a}`,icon:"templater-icon",callback:async()=>{let c=s();!c||await this.plugin.templater.append_template_to_active_file(c)}}),r.create_enabled&&this.plugin.addCommand({id:`create-${i}`,name:`Create ${a}`,icon:"templater-icon",callback:async()=>{let c=s();!c||await this.plugin.templater.create_new_note_from_template(c)}}),this.registered_hotkey_templates.add(i)}remove_template_hotkey(t){t&&(this.plugin.removeCommand(`${t}`),this.plugin.removeCommand(`create-${t}`),this.registered_hotkey_templates.delete(t))}register_cli_handler(){this.plugin.registerCliHandler("templater:create-from-template","Create a new note from a Templater template",{template:{value:"",description:"Template file path (relative to vault root or templates folder)",required:!0},file:{value:"",description:"Output file path (relative to vault root)",required:!0},open:{description:"Open the created file in the UI",required:!1}},async t=>this.handle_create_from_template(t))}resolve_template_file(t){let r=t;r.endsWith(".md")||(r=`${r}.md`);try{return pt(this.plugin.app,r)}catch{let i=this.plugin.settings.templates_folder;if(i){let n=(0,Ct.normalizePath)(`${i}/${r}`);return pt(this.plugin.app,n)}throw new Error(`Template "${t}" not found`)}}async handle_create_from_template(t){let{template:r,file:i,open:n}=t;if(!r)return"Error: template parameter is required";if(!i)return"Error: file parameter is required";try{let a=this.resolve_template_file(r),s=(0,Ct.normalizePath)(i),c=Xr(s),l=s.slice(c.length+1).replace(/\.md$/,""),h;if(c)try{h=Yi(this.plugin.app,c)}catch{}let m=n==="true",_=await this.plugin.templater.create_new_note_from_template(a,h??c,l,m);return _?_.path:"Error: Failed to create note from template"}catch(a){return`Error: ${a instanceof Error?a.message:String(a)}`}}};var Qn=$(require("obsidian"));var In=$(require("obsidian"));var Nn=class{constructor(t){this.app=t}async jump_to_next_cursor_location(){let t=this.app.workspace.activeEditor;if(!t?.editor)return;let r=t.editor.getValue(),{cursor_matches:i,positions:n}=this.get_cursor_matches_and_positions(r);if(!n||!i)return;let a=t instanceof In.MarkdownView?t.currentMode.getFoldInfo():null,s=[];for(let c=i.length-1;c>=0;c--){let l=i[c],h=this.get_editor_position_from_index(r,l.index),m=this.get_editor_position_from_index(r,l.index+l[0].length);s.push({from:h,to:m,text:""})}t.editor.transaction({changes:s,selections:n.map(c=>({from:c}))}),a&&Array.isArray(a.folds)&&(n.forEach(c=>{a.folds=a.folds.filter(l=>l.from>c.line||l.to(?:-?[0-9]+(?:\.[0-9]+)?)?)\)\s*%>/g,i=[],n;for(;(n=r.exec(t))!==null;)i.push(n);if(i.length===0)return{};let a=_=>Number(_.groups?.order||0),s=_=>(_.groups?.order??"")===""?"":String(a(_));i.sort((_,k)=>a(_)-a(k));let c=s(i[0]),l=c===""?[i[0]]:i.filter(_=>s(_)===c),h=[],m=0;for(let _ of l){let k=_.index-m;h.push(this.get_editor_position_from_index(t,k)),t=t.slice(0,k)+t.slice(k+_[0].length),m+=_[0].length}return{cursor_matches:l,positions:h}}};var Us=$(require("obsidian"));var yc=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239],Qa=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489],vc="\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65",Xa="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088F\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDC-\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",Dn={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},Mn="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",bc={5:Mn,"5module":Mn+" export import",6:Mn+" const class extends export import super"},Za=/^in(stanceof)?$/,wc=new RegExp("["+Xa+"]"),kc=new RegExp("["+Xa+vc+"]");function Fn(e,t){for(var r=65536,i=0;ie)return!1;if(r+=t[i+1],r>=e)return!0}return!1}function $e(e,t){return e<65?e===36:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&wc.test(String.fromCharCode(e)):t===!1?!1:Fn(e,Qa)}function mt(e,t){return e<48?e===36:e<58?!0:e<65?!1:e<91?!0:e<97?e===95:e<123?!0:e<=65535?e>=170&&kc.test(String.fromCharCode(e)):t===!1?!1:Fn(e,Qa)||Fn(e,yc)}var K=function(t,r){r===void 0&&(r={}),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null};function Te(e,t){return new K(e,{beforeExpr:!0,binop:t})}var Ee={beforeExpr:!0},Ae={startsExpr:!0},Bn={};function R(e,t){return t===void 0&&(t={}),t.keyword=e,Bn[e]=new K(e,t)}var u={num:new K("num",Ae),regexp:new K("regexp",Ae),string:new K("string",Ae),name:new K("name",Ae),privateId:new K("privateId",Ae),eof:new K("eof"),bracketL:new K("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new K("]"),braceL:new K("{",{beforeExpr:!0,startsExpr:!0}),braceR:new K("}"),parenL:new K("(",{beforeExpr:!0,startsExpr:!0}),parenR:new K(")"),comma:new K(",",Ee),semi:new K(";",Ee),colon:new K(":",Ee),dot:new K("."),question:new K("?",Ee),questionDot:new K("?."),arrow:new K("=>",Ee),template:new K("template"),invalidTemplate:new K("invalidTemplate"),ellipsis:new K("...",Ee),backQuote:new K("`",Ae),dollarBraceL:new K("${",{beforeExpr:!0,startsExpr:!0}),eq:new K("=",{beforeExpr:!0,isAssign:!0}),assign:new K("_=",{beforeExpr:!0,isAssign:!0}),incDec:new K("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new K("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Te("||",1),logicalAND:Te("&&",2),bitwiseOR:Te("|",3),bitwiseXOR:Te("^",4),bitwiseAND:Te("&",5),equality:Te("==/!=/===/!==",6),relational:Te("/<=/>=",7),bitShift:Te("<>/>>>",8),plusMin:new K("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Te("%",10),star:Te("*",10),slash:Te("/",10),starstar:new K("**",{beforeExpr:!0}),coalesce:Te("??",1),_break:R("break"),_case:R("case",Ee),_catch:R("catch"),_continue:R("continue"),_debugger:R("debugger"),_default:R("default",Ee),_do:R("do",{isLoop:!0,beforeExpr:!0}),_else:R("else",Ee),_finally:R("finally"),_for:R("for",{isLoop:!0}),_function:R("function",Ae),_if:R("if"),_return:R("return",Ee),_switch:R("switch"),_throw:R("throw",Ee),_try:R("try"),_var:R("var"),_const:R("const"),_while:R("while",{isLoop:!0}),_with:R("with"),_new:R("new",{beforeExpr:!0,startsExpr:!0}),_this:R("this",Ae),_super:R("super",Ae),_class:R("class",Ae),_extends:R("extends",Ee),_export:R("export"),_import:R("import",Ae),_null:R("null",Ae),_true:R("true",Ae),_false:R("false",Ae),_in:R("in",{beforeExpr:!0,binop:7}),_instanceof:R("instanceof",{beforeExpr:!0,binop:7}),_typeof:R("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:R("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:R("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},_e=/\r\n?|\n|\u2028|\u2029/,jc=new RegExp(_e.source,"g");function Qt(e){return e===10||e===13||e===8232||e===8233}function es(e,t,r){r===void 0&&(r=e.length);for(var i=t;i>10)+55296,(e&1023)+56320))}var Sc=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,xr=function(t,r){this.line=t,this.column=r};xr.prototype.offset=function(t){return new xr(this.line,this.column+t)};var pi=function(t,r,i){this.start=r,this.end=i,t.sourceFile!==null&&(this.source=t.sourceFile)};function as(e,t){for(var r=1,i=0;;){var n=es(e,i,t);if(n<0)return new xr(r,t-i);++r,i=n}}var On={ecmaVersion:null,sourceType:"script",strict:!1,onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},ss=!1;function Cc(e){var t={};for(var r in On)t[r]=e&&Xt(e,r)?e[r]:On[r];if(t.ecmaVersion==="latest"?t.ecmaVersion=1e8:t.ecmaVersion==null?(!ss&&typeof console=="object"&&console.warn&&(ss=!0,console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required. Defaulting to 2020, but this will stop working in the future.`)),t.ecmaVersion=11):t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),t.allowReserved==null&&(t.allowReserved=t.ecmaVersion<5),(!e||e.allowHashBang==null)&&(t.allowHashBang=t.ecmaVersion>=14),is(t.onToken)){var i=t.onToken;t.onToken=function(n){return i.push(n)}}if(is(t.onComment)&&(t.onComment=Pc(t,t.onComment)),t.sourceType==="commonjs"&&t.allowAwaitOutsideFunction)throw new Error("Cannot use allowAwaitOutsideFunction with sourceType: commonjs");return t}function Pc(e,t){return function(r,i,n,a,s,c){var l={type:r?"Block":"Line",value:i,start:n,end:a};e.locations&&(l.loc=new pi(this,s,c)),e.ranges&&(l.range=[n,a]),t.push(l)}}var Pt=1,It=2,qn=4,os=8,Ln=16,cs=32,fi=64,us=128,Nt=256,yr=512,ls=1024,hi=Pt|It|Nt;function Rn(e,t){return It|(e?qn:0)|(t?os:0)}var di=0,Vn=1,nt=2,ps=3,fs=4,hs=5,ne=function(t,r,i){this.options=t=Cc(t),this.sourceFile=t.sourceFile,this.keywords=gt(bc[t.ecmaVersion>=6?6:t.sourceType==="module"?"5module":5]);var n="";t.allowReserved!==!0&&(n=Dn[t.ecmaVersion>=6?6:t.ecmaVersion===5?5:3],t.sourceType==="module"&&(n+=" await")),this.reservedWords=gt(n);var a=(n?n+" ":"")+Dn.strict;this.reservedWordsStrict=gt(a),this.reservedWordsStrictBind=gt(a+" "+Dn.strictBind),this.input=String(r),this.containsEsc=!1,i?(this.pos=i,this.lineStart=this.input.lastIndexOf(` `,i-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(_e).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=u.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=t.sourceType==="module",this.strict=this.inModule||t.strict===!0||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&&t.allowHashBang&&this.input.slice(0,2)==="#!"&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(this.options.sourceType==="commonjs"?It:Pt),this.regexpState=null,this.privateNameStack=[]},Se={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowReturn:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},allowUsing:{configurable:!0},inClassStaticBlock:{configurable:!0}};ne.prototype.parse=function(){var t=this,r=this.options.program||this.startNode();return this.nextToken(),this.catchStackOverflow(function(){return t.parseTopLevel(r)})};Se.inFunction.get=function(){return(this.currentVarScope().flags&It)>0};Se.inGenerator.get=function(){return(this.currentVarScope().flags&os)>0};Se.inAsync.get=function(){return(this.currentVarScope().flags&qn)>0};Se.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e],r=t.flags;if(r&(Nt|yr))return!1;if(r&It)return(r&qn)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction};Se.allowReturn.get=function(){return!!(this.inFunction||this.options.allowReturnOutsideFunction&&this.currentVarScope().flags&Pt)};Se.allowSuper.get=function(){var e=this.currentThisScope(),t=e.flags;return(t&fi)>0||this.options.allowSuperOutsideMethod};Se.allowDirectSuper.get=function(){return(this.currentThisScope().flags&us)>0};Se.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())};Se.allowNewDotTarget.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e],r=t.flags;if(r&(Nt|yr)||r&It&&!(r&Ln))return!0}return!1};Se.allowUsing.get=function(){var e=this.currentScope(),t=e.flags;return!(t&ls||!this.inModule&&t&Pt)};Se.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&Nt)>0};ne.extend=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];for(var i=this,n=0;n=,?^&]/.test(n)||n==="!"&&this.input.charAt(i+1)==="=")}e+=t[0].length,se.lastIndex=e,e+=se.exec(this.input)[0].length,this.input[e]===";"&&e++}};pe.eat=function(e){return this.type===e?(this.next(),!0):!1};pe.isContextual=function(e){return this.type===u.name&&this.value===e&&!this.containsEsc};pe.eatContextual=function(e){return this.isContextual(e)?(this.next(),!0):!1};pe.catchStackOverflow=function(e){try{return e()}catch(t){if(t instanceof Error&&(/\bstack\b.*\b(exceeded|overflow)\b/i.test(t.message)||/\btoo much recursion\b/i.test(t.message)))this.raise(this.start,"Not enough stack space to parse input");else throw t}};pe.expectContextual=function(e){this.eatContextual(e)||this.unexpected()};pe.canInsertSemicolon=function(){return this.type===u.eof||this.type===u.braceR||_e.test(this.input.slice(this.lastTokEnd,this.start))};pe.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0};pe.semicolon=function(){!this.eat(u.semi)&&!this.insertSemicolon()&&this.unexpected()};pe.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0};pe.expect=function(e){this.eat(e)||this.unexpected()};pe.unexpected=function(e){this.raise(e??this.start,"Unexpected token")};var mi=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};pe.checkPatternErrors=function(e,t){if(!!e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var r=t?e.parenthesizedAssign:e.parenthesizedBind;r>-1&&this.raiseRecoverable(r,t?"Assigning to rvalue":"Parenthesized pattern")}};pe.checkExpressionErrors=function(e,t){if(!e)return!1;var r=e.shorthandAssign,i=e.doubleProto;if(!t)return r>=0||i>=0;r>=0&&this.raise(r,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")};pe.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos=6&&this.unexpected(),this.parseFunctionStatement(n,!1,!e);case u._class:return e&&this.unexpected(),this.parseClass(n,!0);case u._if:return this.parseIfStatement(n);case u._return:return this.parseReturnStatement(n);case u._switch:return this.parseSwitchStatement(n);case u._throw:return this.parseThrowStatement(n);case u._try:return this.parseTryStatement(n);case u._const:case u._var:return a=a||this.value,e&&a!=="var"&&this.unexpected(),this.parseVarStatement(n,a);case u._while:return this.parseWhileStatement(n);case u._with:return this.parseWithStatement(n);case u.braceL:return this.parseBlock(!0,n);case u.semi:return this.parseEmptyStatement(n);case u._export:case u._import:if(this.options.ecmaVersion>10&&i===u._import){se.lastIndex=this.pos;var s=se.exec(this.input),c=this.pos+s[0].length,l=this.input.charCodeAt(c);if(l===40||l===46)return this.parseExpressionStatement(n,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),i===u._import?this.parseImport(n):this.parseExport(n,r);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(n,!0,!e);var h=this.isAwaitUsing(!1)?"await using":this.isUsing(!1)?"using":null;if(h)return this.allowUsing||this.raise(this.start,"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement"),e&&this.raise(this.start,"Using declaration is not allowed in single-statement positions"),h==="await using"&&(this.canAwait||this.raise(this.start,"Await using cannot appear outside of async function"),this.next()),this.next(),this.parseVar(n,!1,h),this.semicolon(),this.finishNode(n,"VariableDeclaration");var m=this.value,_=this.parseExpression();return i===u.name&&_.type==="Identifier"&&this.eat(u.colon)?this.parseLabeledStatement(n,m,_,e):this.parseExpressionStatement(n,_)}};E.parseBreakContinueStatement=function(e,t){var r=t==="break";this.next(),this.eat(u.semi)||this.insertSemicolon()?e.label=null:this.type!==u.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var i=0;i=6?this.eat(u.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")};E.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(Hn),this.enterScope(0),this.expect(u.parenL),this.type===u.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var r=this.isLet();if(this.type===u._var||this.type===u._const||r){var i=this.startNode(),n=r?"let":this.value;return this.next(),this.parseVar(i,!0,n),this.finishNode(i,"VariableDeclaration"),this.parseForAfterInit(e,i,t)}var a=this.isContextual("let"),s=!1,c=this.isUsing(!0)?"using":this.isAwaitUsing(!0)?"await using":null;if(c){var l=this.startNode();return this.next(),c==="await using"&&(this.canAwait||this.raise(this.start,"Await using cannot appear outside of async function"),this.next()),this.parseVar(l,!0,c),this.finishNode(l,"VariableDeclaration"),this.parseForAfterInit(e,l,t)}var h=this.containsEsc,m=new mi,_=this.start,k=t>-1?this.parseExprSubscripts(m,"await"):this.parseExpression(!0,m);return this.type===u._in||(s=this.options.ecmaVersion>=6&&this.isContextual("of"))?(t>-1?(this.type===u._in&&this.unexpected(t),e.await=!0):s&&this.options.ecmaVersion>=8&&(k.start===_&&!h&&k.type==="Identifier"&&k.name==="async"?this.unexpected():this.options.ecmaVersion>=9&&(e.await=!1)),a&&s&&this.raise(k.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(k,!1,m),this.checkLValPattern(k),this.parseForIn(e,k)):(this.checkExpressionErrors(m,!0),t>-1&&this.unexpected(t),this.parseFor(e,k))};E.parseForAfterInit=function(e,t,r){return(this.type===u._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&t.declarations.length===1?(this.type===u._in?((t.kind==="using"||t.kind==="await using")&&!t.declarations[0].init&&this.raise(this.start,"Using declaration is not allowed in for-in loops"),this.options.ecmaVersion>=9&&r>-1&&this.unexpected(r)):this.options.ecmaVersion>=9&&(e.await=r>-1),this.parseForIn(e,t)):(r>-1&&this.unexpected(r),this.parseFor(e,t))};E.parseFunctionStatement=function(e,t,r){return this.next(),this.parseFunction(e,vr|(r?0:Kn),!1,t)};E.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(u._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")};E.parseReturnStatement=function(e){return this.allowReturn||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(u.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")};E.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(u.braceL),this.labels.push(Nc),this.enterScope(ls);for(var t,r=!1;this.type!==u.braceR;)if(this.type===u._case||this.type===u._default){var i=this.type===u._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),i?t.test=this.parseExpression():(r&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),r=!0,t.test=null),this.expect(u.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")};E.parseThrowStatement=function(e){return this.next(),_e.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var Dc=[];E.parseCatchClauseParam=function(){var e=this.parseBindingAtom(),t=e.type==="Identifier";return this.enterScope(t?cs:0),this.checkLValPattern(e,t?fs:nt),this.expect(u.parenR),e};E.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===u._catch){var t=this.startNode();this.next(),this.eat(u.parenL)?t.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0)),t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(u._finally)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")};E.parseVarStatement=function(e,t,r){return this.next(),this.parseVar(e,!1,t,r),this.semicolon(),this.finishNode(e,"VariableDeclaration")};E.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(Hn),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")};E.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")};E.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")};E.parseLabeledStatement=function(e,t,r,i){for(var n=0,a=this.labels;n=0;l--){var h=this.labels[l];if(h.statementStart===e.start)h.statementStart=this.start,h.kind=c;else break}return this.labels.push({name:t,kind:c,statementStart:this.start}),e.body=this.parseStatement(i?i.indexOf("label")===-1?i+"label":i:"label"),this.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")};E.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")};E.parseBlock=function(e,t,r){for(e===void 0&&(e=!0),t===void 0&&(t=this.startNode()),t.body=[],this.expect(u.braceL),e&&this.enterScope(0);this.type!==u.braceR;){var i=this.parseStatement(null);t.body.push(i)}return r&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")};E.parseFor=function(e,t){return e.init=t,this.expect(u.semi),e.test=this.type===u.semi?null:this.parseExpression(),this.expect(u.semi),e.update=this.type===u.parenR?null:this.parseExpression(),this.expect(u.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")};E.parseForIn=function(e,t){var r=this.type===u._in;return this.next(),t.type==="VariableDeclaration"&&t.declarations[0].init!=null&&(!r||this.options.ecmaVersion<8||this.strict||t.kind!=="var"||t.declarations[0].id.type!=="Identifier")&&this.raise(t.start,(r?"for-in":"for-of")+" loop variable declaration may not have an initializer"),e.left=t,e.right=r?this.parseExpression():this.parseMaybeAssign(),this.expect(u.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,r?"ForInStatement":"ForOfStatement")};E.parseVar=function(e,t,r,i){for(e.declarations=[],e.kind=r;;){var n=this.startNode();if(this.parseVarId(n,r),this.eat(u.eq)?n.init=this.parseMaybeAssign(t):!i&&r==="const"&&!(this.type===u._in||this.options.ecmaVersion>=6&&this.isContextual("of"))?this.unexpected():!i&&(r==="using"||r==="await using")&&this.options.ecmaVersion>=17&&this.type!==u._in&&!this.isContextual("of")?this.raise(this.lastTokEnd,"Missing initializer in "+r+" declaration"):!i&&n.id.type!=="Identifier"&&!(t&&(this.type===u._in||this.isContextual("of")))?this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):n.init=null,e.declarations.push(this.finishNode(n,"VariableDeclarator")),!this.eat(u.comma))break}return e};E.parseVarId=function(e,t){e.id=t==="using"||t==="await using"?this.parseIdent():this.parseBindingAtom(),this.checkLValPattern(e.id,t==="var"?Vn:nt,!1)};var vr=1,Kn=2,ds=4;E.parseFunction=function(e,t,r,i,n){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===u.star&&t&Kn&&this.unexpected(),e.generator=this.eat(u.star)),this.options.ecmaVersion>=8&&(e.async=!!i),t&vr&&(e.id=t&ds&&this.type!==u.name?null:this.parseIdent(),e.id&&!(t&Kn)&&this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?Vn:nt:ps));var a=this.yieldPos,s=this.awaitPos,c=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Rn(e.async,e.generator)),t&vr||(e.id=this.type===u.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,r,!1,n),this.yieldPos=a,this.awaitPos=s,this.awaitIdentPos=c,this.finishNode(e,t&vr?"FunctionDeclaration":"FunctionExpression")};E.parseFunctionParams=function(e){this.expect(u.parenL),e.params=this.parseBindingList(u.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()};E.parseClass=function(e,t){this.next();var r=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var i=this.enterClassBody(),n=this.startNode(),a=!1;for(n.body=[],this.expect(u.braceL);this.type!==u.braceR;){var s=this.parseClassElement(e.superClass!==null);s&&(n.body.push(s),s.type==="MethodDefinition"&&s.kind==="constructor"?(a&&this.raiseRecoverable(s.start,"Duplicate constructor in the same class"),a=!0):s.key&&s.key.type==="PrivateIdentifier"&&Mc(i,s)&&this.raiseRecoverable(s.key.start,"Identifier '#"+s.key.name+"' has already been declared"))}return this.strict=r,this.next(),e.body=this.finishNode(n,"ClassBody"),this.exitClassBody(),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")};E.parseClassElement=function(e){if(this.eat(u.semi))return null;var t=this.options.ecmaVersion,r=this.startNode(),i="",n=!1,a=!1,s="method",c=!1;if(this.eatContextual("static")){if(t>=13&&this.eat(u.braceL))return this.parseClassStaticBlock(r),r;this.isClassElementNameStart()||this.type===u.star?c=!0:i="static"}if(r.static=c,!i&&t>=8&&this.eatContextual("async")&&((this.isClassElementNameStart()||this.type===u.star)&&!this.canInsertSemicolon()?a=!0:i="async"),!i&&(t>=9||!a)&&this.eat(u.star)&&(n=!0),!i&&!a&&!n){var l=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?s=l:i=l)}if(i?(r.computed=!1,r.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),r.key.name=i,this.finishNode(r.key,"Identifier")):this.parseClassElementName(r),t<13||this.type===u.parenL||s!=="method"||n||a){var h=!r.static&&gi(r,"constructor"),m=h&&e;h&&s!=="method"&&this.raise(r.key.start,"Constructor can't have get/set modifier"),r.kind=h?"constructor":s,this.parseClassMethod(r,n,a,m)}else this.parseClassField(r);return r};E.isClassElementNameStart=function(){return this.type===u.name||this.type===u.privateId||this.type===u.num||this.type===u.string||this.type===u.bracketL||this.type.keyword};E.parseClassElementName=function(e){this.type===u.privateId?(this.value==="constructor"&&this.raise(this.start,"Classes can't have an element named '#constructor'"),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)};E.parseClassMethod=function(e,t,r,i){var n=e.key;e.kind==="constructor"?(t&&this.raise(n.start,"Constructor can't be a generator"),r&&this.raise(n.start,"Constructor can't be an async method")):e.static&&gi(e,"prototype")&&this.raise(n.start,"Classes may not have a static property named prototype");var a=e.value=this.parseMethod(t,r,i);return e.kind==="get"&&a.params.length!==0&&this.raiseRecoverable(a.start,"getter should have no params"),e.kind==="set"&&a.params.length!==1&&this.raiseRecoverable(a.start,"setter should have exactly one param"),e.kind==="set"&&a.params[0].type==="RestElement"&&this.raiseRecoverable(a.params[0].start,"Setter cannot use rest params"),this.finishNode(e,"MethodDefinition")};E.parseClassField=function(e){return gi(e,"constructor")?this.raise(e.key.start,"Classes can't have a field named 'constructor'"):e.static&&gi(e,"prototype")&&this.raise(e.key.start,"Classes can't have a static field named 'prototype'"),this.eat(u.eq)?(this.enterScope(yr|fi),e.value=this.parseMaybeAssign(),this.exitScope()):e.value=null,this.semicolon(),this.finishNode(e,"PropertyDefinition")};E.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(Nt|fi);this.type!==u.braceR;){var r=this.parseStatement(null);e.body.push(r)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,"StaticBlock")};E.parseClassId=function(e,t){this.type===u.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,nt,!1)):(t===!0&&this.unexpected(),e.id=null)};E.parseClassSuper=function(e){e.superClass=this.eat(u._extends)?this.parseExprSubscripts(null,!1):null};E.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared};E.exitClassBody=function(){var e=this.privateNameStack.pop(),t=e.declared,r=e.used;if(!!this.options.checkPrivateFields)for(var i=this.privateNameStack.length,n=i===0?null:this.privateNameStack[i-1],a=0;a=11&&(this.eatContextual("as")?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==u.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,"ExportAllDeclaration")};E.parseExport=function(e,t){if(this.next(),this.eat(u.star))return this.parseExportAllDeclaration(e,t);if(this.eat(u._default))return this.checkExport(t,"default",this.lastTokStart),e.declaration=this.parseExportDefaultDeclaration(),this.finishNode(e,"ExportDefaultDeclaration");if(this.shouldParseExportStatement())e.declaration=this.parseExportDeclaration(e),e.declaration.type==="VariableDeclaration"?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id,e.declaration.id.start),e.specifiers=[],e.source=null,this.options.ecmaVersion>=16&&(e.attributes=[]);else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==u.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause());else{for(var r=0,i=e.specifiers;r=16&&(e.attributes=[])}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")};E.parseExportDeclaration=function(e){return this.parseStatement(null)};E.parseExportDefaultDeclaration=function(){var e;if(this.type===u._function||(e=this.isAsyncFunction())){var t=this.startNode();return this.next(),e&&this.next(),this.parseFunction(t,vr|ds,!1,e)}else if(this.type===u._class){var r=this.startNode();return this.parseClass(r,"nullableID")}else{var i=this.parseMaybeAssign();return this.semicolon(),i}};E.checkExport=function(e,t,r){!e||(typeof t!="string"&&(t=t.type==="Identifier"?t.name:t.value),Xt(e,t)&&this.raiseRecoverable(r,"Duplicate export '"+t+"'"),e[t]=!0)};E.checkPatternExport=function(e,t){var r=t.type;if(r==="Identifier")this.checkExport(e,t,t.start);else if(r==="ObjectPattern")for(var i=0,n=t.properties;i=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,"ImportDeclaration")};E.parseImportSpecifier=function(){var e=this.startNode();return e.imported=this.parseModuleExportName(),this.eatContextual("as")?e.local=this.parseIdent():(this.checkUnreserved(e.imported),e.local=e.imported),this.checkLValSimple(e.local,nt),this.finishNode(e,"ImportSpecifier")};E.parseImportDefaultSpecifier=function(){var e=this.startNode();return e.local=this.parseIdent(),this.checkLValSimple(e.local,nt),this.finishNode(e,"ImportDefaultSpecifier")};E.parseImportNamespaceSpecifier=function(){var e=this.startNode();return this.next(),this.expectContextual("as"),e.local=this.parseIdent(),this.checkLValSimple(e.local,nt),this.finishNode(e,"ImportNamespaceSpecifier")};E.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===u.name&&(e.push(this.parseImportDefaultSpecifier()),!this.eat(u.comma)))return e;if(this.type===u.star)return e.push(this.parseImportNamespaceSpecifier()),e;for(this.expect(u.braceL);!this.eat(u.braceR);){if(t)t=!1;else if(this.expect(u.comma),this.afterTrailingComma(u.braceR))break;e.push(this.parseImportSpecifier())}return e};E.parseWithClause=function(){var e=[];if(!this.eat(u._with))return e;this.expect(u.braceL);for(var t={},r=!0;!this.eat(u.braceR);){if(r)r=!1;else if(this.expect(u.comma),this.afterTrailingComma(u.braceR))break;var i=this.parseImportAttribute(),n=i.key.type==="Identifier"?i.key.name:i.key.value;Xt(t,n)&&this.raiseRecoverable(i.key.start,"Duplicate attribute key '"+n+"'"),t[n]=!0,e.push(i)}return e};E.parseImportAttribute=function(){var e=this.startNode();return e.key=this.type===u.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never"),this.expect(u.colon),this.type!==u.string&&this.unexpected(),e.value=this.parseExprAtom(),this.finishNode(e,"ImportAttribute")};E.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===u.string){var e=this.parseLiteral(this.value);return Sc.test(e.value)&&this.raise(e.start,"An export name cannot include a lone surrogate."),e}return this.parseIdent(!0)};E.adaptDirectivePrologue=function(e){for(var t=0;t=5&&e.type==="ExpressionStatement"&&e.expression.type==="Literal"&&typeof e.expression.value=="string"&&(this.input[e.start]==='"'||this.input[e.start]==="'")};var Ce=ne.prototype;Ce.toAssignable=function(e,t,r){if(this.options.ecmaVersion>=6&&e)switch(e.type){case"Identifier":this.inAsync&&e.name==="await"&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",r&&this.checkPatternErrors(r,!0);for(var i=0,n=e.properties;i=8&&!c&&l.name==="async"&&!this.canInsertSemicolon()&&this.eat(u._function))return this.overrideContext(Z.f_expr),this.parseFunction(this.startNodeAt(a,s),0,!1,!0,t);if(n&&!this.canInsertSemicolon()){if(this.eat(u.arrow))return this.parseArrowExpression(this.startNodeAt(a,s),[l],!1,t);if(this.options.ecmaVersion>=8&&l.name==="async"&&this.type===u.name&&!c&&(!this.potentialArrowInForAwait||this.value!=="of"||this.containsEsc))return l=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(u.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,s),[l],!0,t)}return l;case u.regexp:var h=this.value;return i=this.parseLiteral(h.value),i.regex={pattern:h.pattern,flags:h.flags},i;case u.num:case u.string:return this.parseLiteral(this.value);case u._null:case u._true:case u._false:return i=this.startNode(),i.value=this.type===u._null?null:this.type===u._true,i.raw=this.type.keyword,this.next(),this.finishNode(i,"Literal");case u.parenL:var m=this.start,_=this.parseParenAndDistinguishExpression(n,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(_)&&(e.parenthesizedAssign=m),e.parenthesizedBind<0&&(e.parenthesizedBind=m)),_;case u.bracketL:return i=this.startNode(),this.next(),i.elements=this.parseExprList(u.bracketR,!0,!0,e),this.finishNode(i,"ArrayExpression");case u.braceL:return this.overrideContext(Z.b_expr),this.parseObj(!1,e);case u._function:return i=this.startNode(),this.next(),this.parseFunction(i,0);case u._class:return this.parseClass(this.startNode(),!1);case u._new:return this.parseNew();case u.backQuote:return this.parseTemplate();case u._import:return this.options.ecmaVersion>=11?this.parseExprImport(r):this.unexpected();default:return this.parseExprAtomDefault()}};N.parseExprAtomDefault=function(){this.unexpected()};N.parseExprImport=function(e){var t=this.startNode();if(this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import"),this.next(),this.type===u.parenL&&!e)return this.parseDynamicImport(t);if(this.type===u.dot){var r=this.startNodeAt(t.start,t.loc&&t.loc.start);return r.name="import",t.meta=this.finishNode(r,"Identifier"),this.parseImportMeta(t)}else this.unexpected()};N.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),this.options.ecmaVersion>=16)this.eat(u.parenR)?e.options=null:(this.expect(u.comma),this.afterTrailingComma(u.parenR)?e.options=null:(e.options=this.parseMaybeAssign(),this.eat(u.parenR)||(this.expect(u.comma),this.afterTrailingComma(u.parenR)||this.unexpected())));else if(!this.eat(u.parenR)){var t=this.start;this.eat(u.comma)&&this.eat(u.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")};N.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!=="meta"&&this.raiseRecoverable(e.property.start,"The only valid meta property for import is 'import.meta'"),t&&this.raiseRecoverable(e.start,"'import.meta' must not contain escaped characters"),this.options.sourceType!=="module"&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(e.start,"Cannot use 'import.meta' outside a module"),this.finishNode(e,"MetaProperty")};N.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),t.raw.charCodeAt(t.raw.length-1)===110&&(t.bigint=t.value!=null?t.value.toString():t.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")};N.parseParenExpression=function(){this.expect(u.parenL);var e=this.parseExpression();return this.expect(u.parenR),e};N.shouldParseArrow=function(e){return!this.canInsertSemicolon()};N.parseParenAndDistinguishExpression=function(e,t){var r=this.start,i=this.startLoc,n,a=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var s=this.start,c=this.startLoc,l=[],h=!0,m=!1,_=new mi,k=this.yieldPos,F=this.awaitPos,O;for(this.yieldPos=0,this.awaitPos=0;this.type!==u.parenR;)if(h?h=!1:this.expect(u.comma),a&&this.afterTrailingComma(u.parenR,!0)){m=!0;break}else if(this.type===u.ellipsis){O=this.start,l.push(this.parseParenItem(this.parseRestBinding())),this.type===u.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element");break}else l.push(this.parseMaybeAssign(!1,_,this.parseParenItem));var U=this.lastTokEnd,P=this.lastTokEndLoc;if(this.expect(u.parenR),e&&this.shouldParseArrow(l)&&this.eat(u.arrow))return this.checkPatternErrors(_,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=k,this.awaitPos=F,this.parseParenArrowList(r,i,l,t);(!l.length||m)&&this.unexpected(this.lastTokStart),O&&this.unexpected(O),this.checkExpressionErrors(_,!0),this.yieldPos=k||this.yieldPos,this.awaitPos=F||this.awaitPos,l.length>1?(n=this.startNodeAt(s,c),n.expressions=l,this.finishNodeAt(n,"SequenceExpression",U,P)):n=l[0]}else n=this.parseParenExpression();if(this.options.preserveParens){var Y=this.startNodeAt(r,i);return Y.expression=n,this.finishNode(Y,"ParenthesizedExpression")}else return n};N.parseParenItem=function(e){return e};N.parseParenArrowList=function(e,t,r,i){return this.parseArrowExpression(this.startNodeAt(e,t),r,!1,i)};var Fc=[];N.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode();if(this.next(),this.options.ecmaVersion>=6&&this.type===u.dot){var t=this.startNodeAt(e.start,e.loc&&e.loc.start);t.name="new",e.meta=this.finishNode(t,"Identifier"),this.next();var r=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!=="target"&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is 'new.target'"),r&&this.raiseRecoverable(e.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(e.start,"'new.target' can only be used in functions and class static block"),this.finishNode(e,"MetaProperty")}var i=this.start,n=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),i,n,!0,!1),e.callee.type==="Super"&&this.raiseRecoverable(i,"Invalid use of 'super'"),this.eat(u.parenL)?e.arguments=this.parseExprList(u.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Fc,this.finishNode(e,"NewExpression")};N.parseTemplateElement=function(e){var t=e.isTagged,r=this.startNode();return this.type===u.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),r.value={raw:this.value.replace(/\r\n?/g,` `),cooked:null}):r.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,` `),cooked:this.value},this.next(),r.tail=this.type===u.backQuote,this.finishNode(r,"TemplateElement")};N.parseTemplate=function(e){e===void 0&&(e={});var t=e.isTagged;t===void 0&&(t=!1);var r=this.startNode();this.next(),r.expressions=[];var i=this.parseTemplateElement({isTagged:t});for(r.quasis=[i];!i.tail;)this.type===u.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(u.dollarBraceL),r.expressions.push(this.parseExpression()),this.expect(u.braceR),r.quasis.push(i=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(r,"TemplateLiteral")};N.isAsyncProp=function(e){return!e.computed&&e.key.type==="Identifier"&&e.key.name==="async"&&(this.type===u.name||this.type===u.num||this.type===u.string||this.type===u.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===u.star)&&!_e.test(this.input.slice(this.lastTokEnd,this.start))};N.parseObj=function(e,t){var r=this.startNode(),i=!0,n={};for(r.properties=[],this.next();!this.eat(u.braceR);){if(i)i=!1;else if(this.expect(u.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(u.braceR))break;var a=this.parseProperty(e,t);e||this.checkPropClash(a,n,t),r.properties.push(a)}return this.finishNode(r,e?"ObjectPattern":"ObjectExpression")};N.parseProperty=function(e,t){var r=this.startNode(),i,n,a,s;if(this.options.ecmaVersion>=9&&this.eat(u.ellipsis))return e?(r.argument=this.parseIdent(!1),this.type===u.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.finishNode(r,"RestElement")):(r.argument=this.parseMaybeAssign(!1,t),this.type===u.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(r,"SpreadElement"));this.options.ecmaVersion>=6&&(r.method=!1,r.shorthand=!1,(e||t)&&(a=this.start,s=this.startLoc),e||(i=this.eat(u.star)));var c=this.containsEsc;return this.parsePropertyName(r),!e&&!c&&this.options.ecmaVersion>=8&&!i&&this.isAsyncProp(r)?(n=!0,i=this.options.ecmaVersion>=9&&this.eat(u.star),this.parsePropertyName(r)):n=!1,this.parsePropertyValue(r,e,i,n,a,s,t,c),this.finishNode(r,"Property")};N.parseGetterSetter=function(e){var t=e.key.name;this.parsePropertyName(e),e.value=this.parseMethod(!1),e.kind=t;var r=e.kind==="get"?0:1;if(e.value.params.length!==r){var i=e.value.start;e.kind==="get"?this.raiseRecoverable(i,"getter should have no params"):this.raiseRecoverable(i,"setter should have exactly one param")}else e.kind==="set"&&e.value.params[0].type==="RestElement"&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")};N.parsePropertyValue=function(e,t,r,i,n,a,s,c){(r||i)&&this.type===u.colon&&this.unexpected(),this.eat(u.colon)?(e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,s),e.kind="init"):this.options.ecmaVersion>=6&&this.type===u.parenL?(t&&this.unexpected(),e.method=!0,e.value=this.parseMethod(r,i),e.kind="init"):!t&&!c&&this.options.ecmaVersion>=5&&!e.computed&&e.key.type==="Identifier"&&(e.key.name==="get"||e.key.name==="set")&&this.type!==u.comma&&this.type!==u.braceR&&this.type!==u.eq?((r||i)&&this.unexpected(),this.parseGetterSetter(e)):this.options.ecmaVersion>=6&&!e.computed&&e.key.type==="Identifier"?((r||i)&&this.unexpected(),this.checkUnreserved(e.key),e.key.name==="await"&&!this.awaitIdentPos&&(this.awaitIdentPos=n),t?e.value=this.parseMaybeDefault(n,a,this.copyNode(e.key)):this.type===u.eq&&s?(s.shorthandAssign<0&&(s.shorthandAssign=this.start),e.value=this.parseMaybeDefault(n,a,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.kind="init",e.shorthand=!0):this.unexpected()};N.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(u.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(u.bracketR),e.key;e.computed=!1}return e.key=this.type===u.num||this.type===u.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!=="never")};N.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)};N.parseMethod=function(e,t,r){var i=this.startNode(),n=this.yieldPos,a=this.awaitPos,s=this.awaitIdentPos;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=e),this.options.ecmaVersion>=8&&(i.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Rn(t,i.generator)|fi|(r?us:0)),this.expect(u.parenL),i.params=this.parseBindingList(u.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1,!0,!1),this.yieldPos=n,this.awaitPos=a,this.awaitIdentPos=s,this.finishNode(i,"FunctionExpression")};N.parseArrowExpression=function(e,t,r,i){var n=this.yieldPos,a=this.awaitPos,s=this.awaitIdentPos;return this.enterScope(Rn(r,!1)|Ln),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!r),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,i),this.yieldPos=n,this.awaitPos=a,this.awaitIdentPos=s,this.finishNode(e,"ArrowFunctionExpression")};N.parseFunctionBody=function(e,t,r,i){var n=t&&this.type!==u.braceL,a=this.strict,s=!1;if(n)e.body=this.parseMaybeAssign(i),e.expression=!0,this.checkParams(e,!1);else{var c=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!a||c)&&(s=this.strictDirective(this.end),s&&c&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list"));var l=this.labels;this.labels=[],s&&(this.strict=!0),this.checkParams(e,!a&&!s&&!t&&!r&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,hs),e.body=this.parseBlock(!1,void 0,s&&!a),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=l}this.exitScope()};N.isSimpleParamList=function(e){for(var t=0,r=e;t-1||n.functions.indexOf(e)>-1||n.var.indexOf(e)>-1,n.lexical.push(e),this.inModule&&n.flags&Pt&&delete this.undefinedExports[e]}else if(t===fs){var a=this.currentScope();a.lexical.push(e)}else if(t===ps){var s=this.currentScope();this.treatFunctionsAsVar?i=s.lexical.indexOf(e)>-1:i=s.lexical.indexOf(e)>-1||s.var.indexOf(e)>-1,s.functions.push(e)}else for(var c=this.scopeStack.length-1;c>=0;--c){var l=this.scopeStack[c];if(l.lexical.indexOf(e)>-1&&!(l.flags&cs&&l.lexical[0]===e)||!this.treatFunctionsAsVarInScope(l)&&l.functions.indexOf(e)>-1){i=!0;break}if(l.var.push(e),this.inModule&&l.flags&Pt&&delete this.undefinedExports[e],l.flags&hi)break}i&&this.raiseRecoverable(r,"Identifier '"+e+"' has already been declared")};At.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)};At.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]};At.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&(hi|yr|Nt))return t}};At.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&(hi|yr|Nt)&&!(t.flags&Ln))return t}};var _i=function(t,r,i){this.type="",this.start=r,this.end=0,t.options.locations&&(this.loc=new pi(t,i)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[r,0])},br=ne.prototype;br.startNode=function(){return new _i(this,this.start,this.startLoc)};br.startNodeAt=function(e,t){return new _i(this,e,t)};function gs(e,t,r,i){return e.type=t,e.end=r,this.options.locations&&(e.loc.end=i),this.options.ranges&&(e.range[1]=r),e}br.finishNode=function(e,t){return gs.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)};br.finishNodeAt=function(e,t,r,i){return gs.call(this,e,t,r,i)};br.copyNode=function(e){var t=new _i(this,e.start,this.startLoc);for(var r in e)t[r]=e[r];return t};var Oc="Berf Beria_Erfe Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sidetic Sidt Sunu Sunuwar Tai_Yo Tayo Todhri Todr Tolong_Siki Tols Tulu_Tigalari Tutg Unknown Zzzz",As="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",_s=As+" Extended_Pictographic",xs=_s,ys=xs+" EBase EComp EMod EPres ExtPict",vs=ys,qc=vs,Lc={9:As,10:_s,11:xs,12:ys,13:vs,14:qc},Rc="Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji",Vc={9:"",10:"",11:"",12:"",13:"",14:Rc},bs="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",ws="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",ks=ws+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",js=ks+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",Ts=js+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",Es=Ts+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",Hc=Es+" "+Oc,Kc={9:ws,10:ks,11:js,12:Ts,13:Es,14:Hc},Ss={};function Uc(e){var t=Ss[e]={binary:gt(Lc[e]+" "+bs),binaryOfStrings:gt(Vc[e]),nonBinary:{General_Category:gt(bs),Script:gt(Kc[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(xi=0,$n=[9,10,11,12,13,14];xi<$n.length;xi+=1)Cs=$n[xi],Uc(Cs);var Cs,xi,$n,T=ne.prototype,yi=function(t,r){this.parent=t,this.base=r||this};yi.prototype.separatedFrom=function(t){for(var r=this;r;r=r.parent)for(var i=t;i;i=i.parent)if(r.base===i.base&&r!==i)return!0;return!1};yi.prototype.sibling=function(){return new yi(this.parent,this.base)};var Ge=function(t){this.parser=t,this.validFlags="gim"+(t.options.ecmaVersion>=6?"uy":"")+(t.options.ecmaVersion>=9?"s":"")+(t.options.ecmaVersion>=13?"d":"")+(t.options.ecmaVersion>=15?"v":""),this.unicodeProperties=Ss[t.options.ecmaVersion>=14?14:t.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=Object.create(null),this.backReferenceNames=[],this.branchID=null};Ge.prototype.reset=function(t,r,i){var n=i.indexOf("v")!==-1,a=i.indexOf("u")!==-1;this.start=t|0,this.source=r+"",this.flags=i,n&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=a&&this.parser.options.ecmaVersion>=9)};Ge.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)};Ge.prototype.at=function(t,r){r===void 0&&(r=!1);var i=this.source,n=i.length;if(t>=n)return-1;var a=i.charCodeAt(t);if(!(r||this.switchU)||a<=55295||a>=57344||t+1>=n)return a;var s=i.charCodeAt(t+1);return s>=56320&&s<=57343?(a<<10)+s-56613888:a};Ge.prototype.nextIndex=function(t,r){r===void 0&&(r=!1);var i=this.source,n=i.length;if(t>=n)return n;var a=i.charCodeAt(t),s;return!(r||this.switchU)||a<=55295||a>=57344||t+1>=n||(s=i.charCodeAt(t+1))<56320||s>57343?t+1:t+2};Ge.prototype.current=function(t){return t===void 0&&(t=!1),this.at(this.pos,t)};Ge.prototype.lookahead=function(t){return t===void 0&&(t=!1),this.at(this.nextIndex(this.pos,t),t)};Ge.prototype.advance=function(t){t===void 0&&(t=!1),this.pos=this.nextIndex(this.pos,t)};Ge.prototype.eat=function(t,r){return r===void 0&&(r=!1),this.current(r)===t?(this.advance(r),!0):!1};Ge.prototype.eatChars=function(t,r){r===void 0&&(r=!1);for(var i=this.pos,n=0,a=t;n-1&&this.raise(e.start,"Duplicate regular expression flag"),s==="u"&&(i=!0),s==="v"&&(n=!0)}this.options.ecmaVersion>=15&&i&&n&&this.raise(e.start,"Invalid regular expression flag")};function $c(e){for(var t in e)return!0;return!1}T.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&$c(e.groupNames)&&(e.switchN=!0,this.regexp_pattern(e))};T.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames=Object.create(null),e.backReferenceNames.length=0,e.branchID=null,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,r=e.backReferenceNames;t=16;for(t&&(e.branchID=new yi(e.branchID,null)),this.regexp_alternative(e);e.eat(124);)t&&(e.branchID=e.branchID.sibling()),this.regexp_alternative(e);t&&(e.branchID=e.branchID.parent),this.regexp_eatQuantifier(e,!0)&&e.raise("Nothing to repeat"),e.eat(123)&&e.raise("Lone quantifier brackets")};T.regexp_alternative=function(e){for(;e.pos=9&&(r=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!r,!0}return e.pos=t,!1};T.regexp_eatQuantifier=function(e,t){return t===void 0&&(t=!1),this.regexp_eatQuantifierPrefix(e,t)?(e.eat(63),!0):!1};T.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)};T.regexp_eatBracedQuantifier=function(e,t){var r=e.pos;if(e.eat(123)){var i=0,n=-1;if(this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(n=e.lastIntValue),e.eat(125)))return n!==-1&&n=16){var r=this.regexp_eatModifiers(e),i=e.eat(45);if(r||i){for(var n=0;n-1&&e.raise("Duplicate regular expression modifiers")}if(i){var s=this.regexp_eatModifiers(e);!r&&!s&&e.current()===58&&e.raise("Invalid regular expression modifiers");for(var c=0;c-1||r.indexOf(l)>-1)&&e.raise("Duplicate regular expression modifiers")}}}}if(e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise("Unterminated group")}}e.pos=t}return!1};T.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):e.current()===63&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1};T.regexp_eatModifiers=function(e){for(var t="",r=0;(r=e.current())!==-1&&Gc(r);)t+=it(r),e.advance();return t};function Gc(e){return e===105||e===109||e===115}T.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)};T.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1};T.regexp_eatSyntaxCharacter=function(e){var t=e.current();return Ps(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Ps(e){return e===36||e>=40&&e<=43||e===46||e===63||e>=91&&e<=94||e>=123&&e<=125}T.regexp_eatPatternCharacters=function(e){for(var t=e.pos,r=0;(r=e.current())!==-1&&!Ps(r);)e.advance();return e.pos!==t};T.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return t!==-1&&t!==36&&!(t>=40&&t<=43)&&t!==46&&t!==63&&t!==91&&t!==94&&t!==124?(e.advance(),!0):!1};T.regexp_groupSpecifier=function(e){if(e.eat(63)){this.regexp_eatGroupName(e)||e.raise("Invalid group");var t=this.options.ecmaVersion>=16,r=e.groupNames[e.lastStringValue];if(r)if(t)for(var i=0,n=r;i=11,i=e.current(r);return e.advance(r),i===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(i=e.lastIntValue),Yc(i)?(e.lastIntValue=i,!0):(e.pos=t,!1)};function Yc(e){return $e(e,!0)||e===36||e===95}T.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,i=e.current(r);return e.advance(r),i===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(i=e.lastIntValue),zc(i)?(e.lastIntValue=i,!0):(e.pos=t,!1)};function zc(e){return mt(e,!0)||e===36||e===95||e===8204||e===8205}T.regexp_eatAtomEscape=function(e){return this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e)?!0:(e.switchU&&(e.current()===99&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)};T.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var r=e.lastIntValue;if(e.switchU)return r>e.maxBackReference&&(e.maxBackReference=r),!0;if(r<=e.numCapturingParens)return!0;e.pos=t}return!1};T.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1};T.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)};T.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1};T.regexp_eatZero=function(e){return e.current()===48&&!vi(e.lookahead())?(e.lastIntValue=0,e.advance(),!0):!1};T.regexp_eatControlEscape=function(e){var t=e.current();return t===116?(e.lastIntValue=9,e.advance(),!0):t===110?(e.lastIntValue=10,e.advance(),!0):t===118?(e.lastIntValue=11,e.advance(),!0):t===102?(e.lastIntValue=12,e.advance(),!0):t===114?(e.lastIntValue=13,e.advance(),!0):!1};T.regexp_eatControlLetter=function(e){var t=e.current();return Is(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function Is(e){return e>=65&&e<=90||e>=97&&e<=122}T.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){t===void 0&&(t=!1);var r=e.pos,i=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var n=e.lastIntValue;if(i&&n>=55296&&n<=56319){var a=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var s=e.lastIntValue;if(s>=56320&&s<=57343)return e.lastIntValue=(n-55296)*1024+(s-56320)+65536,!0}e.pos=a,e.lastIntValue=n}return!0}if(i&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&Wc(e.lastIntValue))return!0;i&&e.raise("Invalid unicode escape"),e.pos=r}return!1};function Wc(e){return e>=0&&e<=1114111}T.regexp_eatIdentityEscape=function(e){if(e.switchU)return this.regexp_eatSyntaxCharacter(e)?!0:e.eat(47)?(e.lastIntValue=47,!0):!1;var t=e.current();return t!==99&&(!e.switchN||t!==107)?(e.lastIntValue=t,e.advance(),!0):!1};T.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do e.lastIntValue=10*e.lastIntValue+(t-48),e.advance();while((t=e.current())>=48&&t<=57);return!0}return!1};var Ns=0,at=1,Pe=2;T.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(Jc(t))return e.lastIntValue=-1,e.advance(),at;var r=!1;if(e.switchU&&this.options.ecmaVersion>=9&&((r=t===80)||t===112)){e.lastIntValue=-1,e.advance();var i;if(e.eat(123)&&(i=this.regexp_eatUnicodePropertyValueExpression(e))&&e.eat(125))return r&&i===Pe&&e.raise("Invalid property name"),i;e.raise("Invalid property name")}return Ns};function Jc(e){return e===100||e===68||e===115||e===83||e===119||e===87}T.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var r=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,r,i),at}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var n=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,n)}return Ns};T.regexp_validateUnicodePropertyNameAndValue=function(e,t,r){Xt(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(r)||e.raise("Invalid property value")};T.regexp_validateUnicodePropertyNameOrValue=function(e,t){if(e.unicodeProperties.binary.test(t))return at;if(e.switchV&&e.unicodeProperties.binaryOfStrings.test(t))return Pe;e.raise("Invalid property name")};T.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";Ds(t=e.current());)e.lastStringValue+=it(t),e.advance();return e.lastStringValue!==""};function Ds(e){return Is(e)||e===95}T.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";Qc(t=e.current());)e.lastStringValue+=it(t),e.advance();return e.lastStringValue!==""};function Qc(e){return Ds(e)||vi(e)}T.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)};T.regexp_eatCharacterClass=function(e){if(e.eat(91)){var t=e.eat(94),r=this.regexp_classContents(e);return e.eat(93)||e.raise("Unterminated character class"),t&&r===Pe&&e.raise("Negated character class may contain strings"),!0}return!1};T.regexp_classContents=function(e){return e.current()===93?at:e.switchV?this.regexp_classSetExpression(e):(this.regexp_nonEmptyClassRanges(e),at)};T.regexp_nonEmptyClassRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var r=e.lastIntValue;e.switchU&&(t===-1||r===-1)&&e.raise("Invalid character class"),t!==-1&&r!==-1&&t>r&&e.raise("Range out of order in character class")}}};T.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var r=e.current();(r===99||Bs(r))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var i=e.current();return i!==93?(e.lastIntValue=i,e.advance(),!0):!1};T.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)};T.regexp_classSetExpression=function(e){var t=at,r;if(!this.regexp_eatClassSetRange(e))if(r=this.regexp_eatClassSetOperand(e)){r===Pe&&(t=Pe);for(var i=e.pos;e.eatChars([38,38]);){if(e.current()!==38&&(r=this.regexp_eatClassSetOperand(e))){r!==Pe&&(t=at);continue}e.raise("Invalid character in character class")}if(i!==e.pos)return t;for(;e.eatChars([45,45]);)this.regexp_eatClassSetOperand(e)||e.raise("Invalid character in character class");if(i!==e.pos)return t}else e.raise("Invalid character in character class");for(;;)if(!this.regexp_eatClassSetRange(e)){if(r=this.regexp_eatClassSetOperand(e),!r)return t;r===Pe&&(t=Pe)}};T.regexp_eatClassSetRange=function(e){var t=e.pos;if(this.regexp_eatClassSetCharacter(e)){var r=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassSetCharacter(e)){var i=e.lastIntValue;return r!==-1&&i!==-1&&r>i&&e.raise("Range out of order in character class"),!0}e.pos=t}return!1};T.regexp_eatClassSetOperand=function(e){return this.regexp_eatClassSetCharacter(e)?at:this.regexp_eatClassStringDisjunction(e)||this.regexp_eatNestedClass(e)};T.regexp_eatNestedClass=function(e){var t=e.pos;if(e.eat(91)){var r=e.eat(94),i=this.regexp_classContents(e);if(e.eat(93))return r&&i===Pe&&e.raise("Negated character class may contain strings"),i;e.pos=t}if(e.eat(92)){var n=this.regexp_eatCharacterClassEscape(e);if(n)return n;e.pos=t}return null};T.regexp_eatClassStringDisjunction=function(e){var t=e.pos;if(e.eatChars([92,113])){if(e.eat(123)){var r=this.regexp_classStringDisjunctionContents(e);if(e.eat(125))return r}else e.raise("Invalid escape");e.pos=t}return null};T.regexp_classStringDisjunctionContents=function(e){for(var t=this.regexp_classString(e);e.eat(124);)this.regexp_classString(e)===Pe&&(t=Pe);return t};T.regexp_classString=function(e){for(var t=0;this.regexp_eatClassSetCharacter(e);)t++;return t===1?at:Pe};T.regexp_eatClassSetCharacter=function(e){var t=e.pos;if(e.eat(92))return this.regexp_eatCharacterEscape(e)||this.regexp_eatClassSetReservedPunctuator(e)?!0:e.eat(98)?(e.lastIntValue=8,!0):(e.pos=t,!1);var r=e.current();return r<0||r===e.lookahead()&&Xc(r)||Zc(r)?!1:(e.advance(),e.lastIntValue=r,!0)};function Xc(e){return e===33||e>=35&&e<=38||e>=42&&e<=44||e===46||e>=58&&e<=64||e===94||e===96||e===126}function Zc(e){return e===40||e===41||e===45||e===47||e>=91&&e<=93||e>=123&&e<=125}T.regexp_eatClassSetReservedPunctuator=function(e){var t=e.current();return eu(t)?(e.lastIntValue=t,e.advance(),!0):!1};function eu(e){return e===33||e===35||e===37||e===38||e===44||e===45||e>=58&&e<=62||e===64||e===96||e===126}T.regexp_eatClassControlLetter=function(e){var t=e.current();return vi(t)||t===95?(e.lastIntValue=t%32,e.advance(),!0):!1};T.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1};T.regexp_eatDecimalDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;vi(r=e.current());)e.lastIntValue=10*e.lastIntValue+(r-48),e.advance();return e.pos!==t};function vi(e){return e>=48&&e<=57}T.regexp_eatHexDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;Ms(r=e.current());)e.lastIntValue=16*e.lastIntValue+Fs(r),e.advance();return e.pos!==t};function Ms(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Fs(e){return e>=65&&e<=70?10+(e-65):e>=97&&e<=102?10+(e-97):e-48}T.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var r=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=t*64+r*8+e.lastIntValue:e.lastIntValue=t*8+r}else e.lastIntValue=t;return!0}return!1};T.regexp_eatOctalDigit=function(e){var t=e.current();return Bs(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function Bs(e){return e>=48&&e<=55}T.regexp_eatFixedHexDigits=function(e,t){var r=e.pos;e.lastIntValue=0;for(var i=0;i=this.input.length)return this.finishToken(u.eof);if(e.override)return e.override(this);this.readToken(this.fullCharCodeAtPos())};q.readToken=function(e){return $e(e,this.options.ecmaVersion>=6)||e===92?this.readWord():this.getTokenFromCode(e)};q.fullCharCodeAt=function(e){var t=this.input.charCodeAt(e);if(t<=55295||t>=56320)return t;var r=this.input.charCodeAt(e+1);return r<=56319||r>=57344?t:(t<<10)+r-56613888};q.fullCharCodeAtPos=function(){return this.fullCharCodeAt(this.pos)};q.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,r=this.input.indexOf("*/",this.pos+=2);if(r===-1&&this.raise(this.pos-2,"Unterminated comment"),this.pos=r+2,this.options.locations)for(var i=void 0,n=t;(i=es(this.input,n,this.pos))>-1;)++this.curLine,n=this.lineStart=i;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,r),t,this.pos,e,this.curPosition())};q.skipLineComment=function(e){for(var t=this.pos,r=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=e);this.pos8&&e<14||e>=5760&&ts.test(String.fromCharCode(e)))++this.pos;else break e}}};q.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var r=this.type;this.type=e,this.value=t,this.updateContext(r)};q.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&e===46&&t===46?(this.pos+=3,this.finishToken(u.ellipsis)):(++this.pos,this.finishToken(u.dot))};q.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):e===61?this.finishOp(u.assign,2):this.finishOp(u.slash,1)};q.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),r=1,i=e===42?u.star:u.modulo;return this.options.ecmaVersion>=7&&e===42&&t===42&&(++r,i=u.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(u.assign,r+1):this.finishOp(i,r)};q.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12){var r=this.input.charCodeAt(this.pos+2);if(r===61)return this.finishOp(u.assign,3)}return this.finishOp(e===124?u.logicalOR:u.logicalAND,2)}return t===61?this.finishOp(u.assign,2):this.finishOp(e===124?u.bitwiseOR:u.bitwiseAND,1)};q.readToken_caret=function(){var e=this.input.charCodeAt(this.pos+1);return e===61?this.finishOp(u.assign,2):this.finishOp(u.bitwiseXOR,1)};q.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?t===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||_e.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(u.incDec,2):t===61?this.finishOp(u.assign,2):this.finishOp(u.plusMin,1)};q.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),r=1;return t===e?(r=e===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+r)===61?this.finishOp(u.assign,r+1):this.finishOp(u.bitShift,r)):t===33&&e===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(t===61&&(r=2),this.finishOp(u.relational,r))};q.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(u.equality,this.input.charCodeAt(this.pos+2)===61?3:2):e===61&&t===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(u.arrow)):this.finishOp(e===61?u.eq:u.prefix,1)};q.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var r=this.input.charCodeAt(this.pos+2);if(r<48||r>57)return this.finishOp(u.questionDot,2)}if(t===63){if(e>=12){var i=this.input.charCodeAt(this.pos+2);if(i===61)return this.finishOp(u.assign,3)}return this.finishOp(u.coalesce,2)}}return this.finishOp(u.question,1)};q.readToken_numberSign=function(){var e=this.options.ecmaVersion,t=35;if(e>=13&&(++this.pos,t=this.fullCharCodeAtPos(),$e(t,!0)||t===92))return this.finishToken(u.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+it(t)+"'")};q.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(u.parenL);case 41:return++this.pos,this.finishToken(u.parenR);case 59:return++this.pos,this.finishToken(u.semi);case 44:return++this.pos,this.finishToken(u.comma);case 91:return++this.pos,this.finishToken(u.bracketL);case 93:return++this.pos,this.finishToken(u.bracketR);case 123:return++this.pos,this.finishToken(u.braceL);case 125:return++this.pos,this.finishToken(u.braceR);case 58:return++this.pos,this.finishToken(u.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(u.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(t===120||t===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(t===111||t===79)return this.readRadixNumber(8);if(t===98||t===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(u.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+it(e)+"'")};q.finishOp=function(e,t){var r=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,r)};q.readRegexp=function(){for(var e,t,r=this.pos;;){this.pos>=this.input.length&&this.raise(r,"Unterminated regular expression");var i=this.input.charAt(this.pos);if(_e.test(i)&&this.raise(r,"Unterminated regular expression"),e)e=!1;else{if(i==="[")t=!0;else if(i==="]"&&t)t=!1;else if(i==="/"&&!t)break;e=i==="\\"}++this.pos}var n=this.input.slice(r,this.pos);++this.pos;var a=this.pos,s=this.readWord1();this.containsEsc&&this.unexpected(a);var c=this.regexpState||(this.regexpState=new Ge(this));c.reset(r,n,s),this.validateRegExpFlags(c),this.validateRegExpPattern(c);var l=null;try{l=new RegExp(n,s)}catch{}return this.finishToken(u.regexp,{pattern:n,flags:s,value:l})};q.readInt=function(e,t,r){for(var i=this.options.ecmaVersion>=12&&t===void 0,n=r&&this.input.charCodeAt(this.pos)===48,a=this.pos,s=0,c=0,l=0,h=t??1/0;l=97?_=m-97+10:m>=65?_=m-65+10:m>=48&&m<=57?_=m-48:_=1/0,_>=e)break;c=m,s=s*e+_}return i&&c===95&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===a||t!=null&&this.pos-a!==t?null:s};function tu(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,""))}function Os(e){return typeof BigInt!="function"?null:BigInt(e.replace(/_/g,""))}q.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var r=this.readInt(e);return r==null&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(r=Os(this.input.slice(t,this.pos)),++this.pos):$e(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(u.num,r)};q.readNumber=function(e){var t=this.pos;!e&&this.readInt(10,void 0,!0)===null&&this.raise(t,"Invalid number");var r=this.pos-t>=2&&this.input.charCodeAt(t)===48;r&&this.strict&&this.raise(t,"Invalid number");var i=this.input.charCodeAt(this.pos);if(!r&&!e&&this.options.ecmaVersion>=11&&i===110){var n=Os(this.input.slice(t,this.pos));return++this.pos,$e(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(u.num,n)}r&&/[89]/.test(this.input.slice(t,this.pos))&&(r=!1),i===46&&!r&&(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),(i===69||i===101)&&!r&&(i=this.input.charCodeAt(++this.pos),(i===43||i===45)&&++this.pos,this.readInt(10)===null&&this.raise(t,"Invalid number")),$e(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var a=tu(this.input.slice(t,this.pos),r);return this.finishToken(u.num,a)};q.readCodePoint=function(){var e=this.input.charCodeAt(this.pos),t;if(e===123){this.options.ecmaVersion<6&&this.unexpected();var r=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(r,"Code point out of bounds")}else t=this.readHexChar(4);return t};q.readString=function(e){for(var t="",r=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var i=this.input.charCodeAt(this.pos);if(i===e)break;i===92?(t+=this.input.slice(r,this.pos),t+=this.readEscapedChar(!1),r=this.pos):i===8232||i===8233?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(Qt(i)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(r,this.pos++),this.finishToken(u.string,t)};var qs={};q.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===qs)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1};q.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw qs;this.raise(e,t)};q.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var r=this.input.charCodeAt(this.pos);if(r===96||r===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===u.template||this.type===u.invalidTemplate)?r===36?(this.pos+=2,this.finishToken(u.dollarBraceL)):(++this.pos,this.finishToken(u.backQuote)):(e+=this.input.slice(t,this.pos),this.finishToken(u.template,e));if(r===92)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(Qt(r)){switch(e+=this.input.slice(t,this.pos),++this.pos,r){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:e+=` `;break;default:e+=String.fromCharCode(r);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}};q.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],n=parseInt(i,8);return n>255&&(i=i.slice(0,-1),n=parseInt(i,8)),this.pos+=i.length-1,t=this.input.charCodeAt(this.pos),(i!=="0"||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-i.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(n)}return Qt(t)?(this.options.locations&&(this.lineStart=this.pos,++this.curLine),""):String.fromCharCode(t)}};q.readHexChar=function(e){var t=this.pos,r=this.readInt(16,e);return r===null&&this.invalidStringToken(t,"Bad character escape sequence"),r};q.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,r=this.pos,i=this.options.ecmaVersion>=6;this.pos"},{name:"Date now with format",example:'<% tp.date.now("Do MMMM YYYY") %>'},{name:"Last week",example:'<% tp.date.now("YYYY-MM-DD", -7) %>'},{name:"Next week",example:'<% tp.date.now("YYYY-MM-DD", 7) %>'},{name:"Last month",example:'<% tp.date.now("YYYY-MM-DD", "P-1M") %>'},{name:"Next year",example:'<% tp.date.now("YYYY-MM-DD", "P1Y") %>'},{name:"File's title date + 1 day (tomorrow)",example:'<% tp.date.now("YYYY-MM-DD", 1, tp.file.title, "YYYY-MM-DD") %>'},{name:"File's title date - 1 day (yesterday)",example:'<% tp.date.now("YYYY-MM-DD", -1, tp.file.title, "YYYY-MM-DD") %>'}]},tomorrow:{name:"tomorrow",description:"Retrieves tomorrow's date.",definition:'tp.date.tomorrow(format: string = "YYYY-MM-DD")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"Date tomorrow",example:"<% tp.date.tomorrow() %>"},{name:"Date tomorrow with format",example:'<% tp.date.tomorrow("Do MMMM YYYY") %>'}]},yesterday:{name:"yesterday",description:"Retrieves yesterday's date.",definition:'tp.date.yesterday(format: string = "YYYY-MM-DD")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"Date yesterday",example:"<% tp.date.yesterday() %>"},{name:"Date yesterday with format",example:'<% tp.date.yesterday("Do MMMM YYYY") %>'}]},weekday:{name:"weekday",description:"",definition:'tp.date.weekday(format: string = "YYYY-MM-DD", weekday: number, reference?: string, reference_format?: string)',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD"`. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/).'},{name:"weekday",description:"Week day number. If the locale assigns Monday as the first day of the week, `0` will be Monday, `-7` will be last week's day."},{name:"reference",description:"The reference date to use instead of today, e.g. set this to the note's title."},{name:"reference_format",description:"The format for the reference date. Refer to the [Momentjs format reference](https://momentjs.com/docs/#/displaying/format/)."}],examples:[{name:"This week's Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 0) %>'},{name:"Next Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 7) %>'},{name:"File's title Monday",example:'<% tp.date.weekday("YYYY-MM-DD", 0, tp.file.title, "YYYY-MM-DD") %>'},{name:"File's title previous Monday",example:'<% tp.date.weekday("YYYY-MM-DD", -7, tp.file.title, "YYYY-MM-DD") %>'}]}},momentjs:{examples:[{name:"Date now",example:'<% moment(tp.file.title, "YYYY-MM-DD").format("YYYY-MM-DD") %>'},{name:"Get start of month from note title",example:'<% moment(tp.file.title, "YYYY-MM-DD").startOf("month").format("YYYY-MM-DD") %>'},{name:"Get end of month from note title",example:'<% moment(tp.file.title, "YYYY-MM-DD").endOf("month").format("YYYY-MM-DD") %>'}]}},file:{name:"file",description:"This module contains every internal function related to files.",functions:{content:{name:"content",description:"The string contents of the file at the time that Templater was executed. Manipulating this string will *not* update the current file.",definition:"tp.file.content",examples:[{name:"Retrieve file content",example:"<% tp.file.content %>"}]},create_new:{name:"create_new",description:"Creates a new file using a specified template or with a specified content.",definition:"tp.file.create_new(template: TFile | string, filename: string = 'Untitled', open_new: boolean = false, folder?: TFolder | string)",args:[{name:"template",description:"Either the template used for the new file content, or the file content as a string. If it is the template to use, you retrieve it with `tp.file.find_tfile(TEMPLATENAME)`."},{name:"filename",description:'The filename of the new file, defaults to "Untitled".'},{name:"open_new",description:"Whether to open or not the newly created file. Warning: if you use this option, since commands are executed asynchronously, the file can be opened first and then other commands are appended to that new file and not the previous file."},{name:"folder",description:'The folder to put the new file in, defaults to Obsidian\'s default location. If you want the file to appear in a different folder, specify it with `"PATH/TO/FOLDERNAME"` or `tp.app.vault.getAbstractFileByPath("PATH/TO/FOLDERNAME")`.'}],examples:[{name:"File creation",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename") %>'},{name:"File creation with template",example:'<%* await tp.file.create_new(tp.file.find_tfile("MyTemplate"), "MyFilename") %>'},{name:"File creation and open created note",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", true) %>'},{name:"File creation in current folder",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, tp.file.folder(true)) %>'},{name:"File creation in specified folder with string path",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, "Path/To/MyFolder") %>'},{name:"File creation in specified folder with TFolder",example:'<%* await tp.file.create_new("MyFileContent", "MyFilename", false, tp.app.vault.getAbstractFileByPath("MyFolder")) %>'},{name:"File creation and append link to current note",example:'[[<% (await tp.file.create_new("MyFileContent", "MyFilename")).basename %>]]'}]},creation_date:{name:"creation_date",description:"Retrieves the current file's creation date.",definition:'tp.file.creation_date(format: string = "YYYY-MM-DD HH:mm")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD HH:mm"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"File creation date",example:"<% tp.file.creation_date() %>"},{name:"File creation date with format",example:'<% tp.file.creation_date("dddd Do MMMM YYYY HH:mm") %>'}]},cursor:{name:"cursor",description:`Sets the cursor to this location after the template has been inserted. You can navigate between the different cursors using the configured hotkey in Obsidian settings. `,definition:"tp.file.cursor(order?: number)",args:[{name:"order",description:`The order of the different cursors jump, e.g. it will jump from 1 to 2 to 3, and so on. If you specify multiple tp.file.cursor with the same order, the editor will switch to multi-cursor. The order can be any number, including a decimal one, so you can insert a new jump between two existing ones without renumbering them, e.g. 1.5 jumps after 1 and before 2. `}],examples:[{name:"File cursor",example:"<% tp.file.cursor() %>"},{name:"File multi-cursor",example:"<% tp.file.cursor(1) %>Content<% tp.file.cursor(1) %>"},{name:"File cursor with a decimal order",example:"<% tp.file.cursor(1) %>Content<% tp.file.cursor(1.5) %>Content<% tp.file.cursor(2) %>"}]},cursor_append:{name:"cursor_append",description:"Appends some content after the active cursor in the file.",definition:"tp.file.cursor_append(content: string)",args:[{name:"content",description:"The content to append after the active cursor."}],examples:[{name:"File cursor append",example:'<% tp.file.cursor_append("Some text") %>'}]},exists:{name:"exists",description:"Check to see if a file exists by it's file path. The full path to the file, relative to the Vault and containing the extension, must be provided.",definition:"tp.file.exists(filepath: string)",args:[{name:"filepath",description:"The full file path of the file we want to check existence for."}],examples:[{name:"File existence",example:'<% await tp.file.exists("MyFolder/MyFile.md") %>'},{name:"File existence of current file",example:'<% await tp.file.exists(tp.file.folder(true) + "/" + tp.file.title + ".md") %>'}]},find_tfile:{name:"find_tfile",description:"Search for a file and returns its `TFile` instance.",definition:"tp.file.find_tfile(filename: string)",args:[{name:"filename",description:"The filename we want to search and resolve as a `TFile`."}],examples:[{name:"File find TFile",example:'<% tp.file.find_tfile("MyFile").basename %>'}]},folder:{name:"folder",description:"Retrieves the file's folder name.",definition:"tp.file.folder(absolute: boolean = false)",args:[{name:"absolute",description:"If set to `true`, returns the vault-absolute path of the folder. If `false`, only returns the basename of the folder (the last part). Defaults to `false`."}],examples:[{name:"File folder (Folder)",example:"<% tp.file.folder() %>"},{name:"File folder with vault-absolute path (Path/To/Folder)",example:"<% tp.file.folder(true) %>"}]},include:{name:"include",description:"Includes the file's link content. Templates in the included content will be resolved.",definition:"tp.file.include(include_link: string | TFile)",args:[{name:"include_link",description:'The link to the file to include, e.g. `"[[MyFile]]"`, or a TFile object. Also supports sections or blocks inclusions.'}],examples:[{name:"File include",example:'<% await tp.file.include("[[Template1]]") %>'},{name:"File include TFile",example:'<% await tp.file.include(tp.file.find_tfile("MyFile")) %>'},{name:"File include section",example:'<% await tp.file.include("[[MyFile#Section1]]") %>'},{name:"File include block",example:'<% await tp.file.include("[[MyFile#^block1]]") %>'}]},last_modified_date:{name:"last_modified_date",description:"Retrieves the file's last modification date.",definition:'tp.file.last_modified_date(format: string = "YYYY-MM-DD HH:mm")',args:[{name:"format",description:'The format for the date. Defaults to `"YYYY-MM-DD HH:mm"`. Refer to [format reference](https://momentjs.com/docs/#/displaying/format/).'}],examples:[{name:"File last modified date",example:"<% tp.file.last_modified_date() %>"},{name:"File last modified date with format",example:'<% tp.file.last_modified_date("dddd Do MMMM YYYY HH:mm") %>'}]},move:{name:"move",description:"Moves the file to the desired vault location.",definition:"tp.file.move(new_path: string, file_to_move?: TFile)",args:[{name:"new_path",description:'The new vault relative path of the file, without the file extension. Note: the new path needs to include the folder and the filename, e.g. `"/Notes/MyNote"`.'},{name:"file_to_move",description:"The file to move, defaults to the current file."}],examples:[{name:"File move",example:'<%* await tp.file.move("/A/B/" + tp.file.title) %>'},{name:"File move and rename",example:'<%* await tp.file.move("/A/B/NewTitle") %>'}]},path:{name:"path",description:"Retrieves the file's absolute path on the system.",definition:"tp.file.path(relative: boolean = false)",args:[{name:"relative",description:"If set to `true`, only retrieves the vault's relative path."}],examples:[{name:"File path",example:"<% tp.file.path() %>"},{name:"File relative path (relative to vault root)",example:"<% tp.file.path(true) %>"}]},rename:{name:"rename",description:"Renames the file (keeps the same file extension).",definition:"tp.file.rename(new_title: string)",args:[{name:"new_title",description:"The new file title."}],examples:[{name:"File rename",example:'<%* await tp.file.rename("MyNewName") %>'},{name:"File append a 2 to the file name",example:'<%* await tp.file.rename(tp.file.title + "2") %>'}]},selection:{name:"selection",description:"Retrieves the active file's text selection.",definition:"tp.file.selection()",examples:[{name:"File selection",example:"<% tp.file.selection() %>"}]},tags:{name:"tags",description:"Retrieves the file's tags (array of string).",definition:"tp.file.tags",examples:[{name:"File tags",example:"<% tp.file.tags %>"}]},title:{name:"title",definition:"tp.file.title",description:"Retrieves the file's title.",examples:[{name:"File title",example:"<% tp.file.title %>"},{name:"Strip the Zettelkasten ID of title (if space separated)",example:'<% tp.file.title.split(" ")[1] %>'}]}}},frontmatter:{name:"frontmatter",description:"This modules exposes all the frontmatter variables of a file as variables."},hooks:{name:"hooks",description:"This module exposes hooks that allow you to execute code when a Templater event occurs.",functions:{on_all_templates_executed:{name:"on_all_templates_executed",description:"Hooks into when all actively running templates have finished executing. Most of the time this will be a single template, unless you are using `tp.file.include` or `tp.file.create_new`.\n\nMultiple invokations of this method will have their callback functions run in parallel.",definition:"tp.hooks.on_all_templates_executed(callback_function: () => any)",args:[{name:"callback_function",description:"Callback function that will be executed when all actively running templates have finished executing."}]}}},obsidian:{name:"obsidian",description:"This module exposes all the functions and classes from the Obsidian API."},system:{name:"system",description:"This module contains system related functions.",functions:{clipboard:{name:"clipboard",description:"Retrieves the clipboard's content.",definition:"tp.system.clipboard()",examples:[{name:"Clipboard",example:"<% tp.system.clipboard() %>"}]},prompt:{name:"prompt",description:"Spawns a prompt modal and returns the user's input.",definition:"tp.system.prompt(prompt_text?: string, default_value?: string, throw_on_cancel: boolean = false, multiline?: boolean = false, select_default_value?: boolean = false)",args:[{name:"prompt_text",description:"Text placed above the input field."},{name:"default_value",description:"A default value for the input field."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"multiline",description:"If set to `true`, the input field will be a multiline textarea. Defaults to `false`."},{name:"select_default_value",description:"If set to `true`, the default value shown when the modal opens is selected, so typing replaces it. Defaults to `false`."}],examples:[{name:"Prompt",example:'<% await tp.system.prompt("Please enter a value") %>'},{name:"Prompt with default value",example:'<% await tp.system.prompt("What is your mood today?", "happy") %>'},{name:"Multiline prompt",example:'<% await tp.system.prompt("What is your mood today?", null, false, true) %>'},{name:"Prompt with pre-selected default value",example:'<% await tp.system.prompt("What is your mood today?", "Input a mood...", false, false, true) %>'},{name:"Reuse output from prompt",example:`<%* let value = await tp.system.prompt("Please enter a value"); %> # <% value %> selected value: <% value %>`}]},suggester:{name:"suggester",description:"Spawns a suggester prompt and returns the user's chosen item.",definition:'tp.system.suggester(text_items: string[] | ((item: T) => string), items: T[], throw_on_cancel: boolean = false, placeholder: string = "", limit?: number = undefined, default_value?: T = undefined)',args:[{name:"text_items",description:"Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation."},{name:"items",description:"Array containing the values of each item in the correct order."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"placeholder",description:"Placeholder string of the prompt."},{name:"limit",description:"Limit the number of items rendered at once (useful to improve performance when displaying large lists)."},{name:"default_value",description:"Default value to initialize the suggester with."}],examples:[{name:"Suggester",example:'<% await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]) %>'},{name:"Suggester with mapping function (same as above example)",example:'<% await tp.system.suggester((item) => item, ["Happy", "Sad", "Confused"]) %>'},{name:"Suggester for files",example:"[[<% (await tp.system.suggester((item) => item.basename, tp.app.vault.getMarkdownFiles())).basename %>]]"},{name:"Suggester for tags",example:'<% await tp.system.suggester(item => item, Object.keys(tp.app.metadataCache.getTags()).map(x => x.replace("#", ""))) %>'},{name:"Reuse value from suggester",example:`<%* let selectedValue = await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]); %> # <% selectedValue %> selected value: <% selectedValue %>`},{name:"Default value for the suggester",example:`<%* let selectedValue = await tp.system.suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"], false, "", undefined, "Confused"); %> # <% selectedValue %> selected value: <% selectedValue %>`}]},multi_suggester:{name:"multi_suggester",description:"Spawns a suggester prompt that supports selecting multiple items and returns the user's chosen items.",definition:'tp.system.multi_suggester(text_items: string[] | ((item: T) => string), items: T[], throw_on_cancel: boolean = false, title: string = "", limit?: number = undefined, default_values?: T[] = undefined)',args:[{name:"text_items",description:"Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation."},{name:"items",description:"Array containing the values of each item in the correct order."},{name:"throw_on_cancel",description:"Throws an error if the prompt is canceled, instead of returning a `null` value."},{name:"title",description:"Text placed at the top of the modal."},{name:"limit",description:"Limit the number of items rendered at once (useful to improve performance when displaying large lists)."},{name:"default_values",description:"Default values to initialize the suggester with."}],examples:[{name:"Multi-suggester",example:'<% await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]) %>'},{name:"Multi-suggester with mapping function (same as above example)",example:'<% await tp.system.multi_suggester((item) => item, ["Happy", "Sad", "Confused"]) %>'},{name:"Multi-suggester for files",example:"<% (await tp.system.multi_suggester((item) => item.basename, tp.app.vault.getMarkdownFiles())).map(f => `[[${f.basename}]]`) %>"},{name:"Multi-suggester for tags",example:'<% await tp.system.multi_suggester(item => item, Object.keys(tp.app.metadataCache.getTags()).map(x => x.replace("#", ""))) %>'},{name:"Reuse value from multi-suggester",example:`<%* let selectedValues = await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"]); %> # <% selectedValues %> selected values: <% selectedValues %>`},{name:"Default value for the suggester",example:`<%* let selectedValue = await tp.system.multi_suggester(["Happy", "Sad", "Confused"], ["Happy", "Sad", "Confused"], false, "", undefined, ["Happy", "Confused"]); %> # <% selectedValue %> selected value: <% selectedValue %>`}]}}},web:{name:"web",description:"This modules contains every internal function related to the web (making web requests).",functions:{daily_quote:{name:"daily_quote",description:"Retrieves and parses a daily quote as a callout. Without arguments it uses the language configured in Obsidian (via `getLanguage()`), falling back to English. English quotes come from `https://github.com/Zachatoo/quotes-database` and Spanish quotes from `https://github.com/wulflo/frases-inventario`.",definition:"tp.web.daily_quote(language?: string)",args:[{name:"language",description:'Optional language code (e.g. `"en"`, `"es"`) selecting the quotes database. Defaults to Obsidian\'s display language, falling back to English when no database is registered for that language.'}],examples:[{name:"Daily quote",example:"<% await tp.web.daily_quote() %>"},{name:"Daily quote in Spanish",example:'<% await tp.web.daily_quote("es") %>'}]},random_picture:{name:"random_picture",description:"Gets a random image from `https://unsplash.com/`.",definition:"tp.web.random_picture(size?: string, query?: string, include_size?: boolean)",args:[{name:"size",description:"Image size in the format `x`."},{name:"query",description:"Limits selection to photos matching a search term. Multiple search terms can be passed separated by a comma."},{name:"include_size",description:"Optional argument to include the specified size in the image link markdown. Defaults to false."}],examples:[{name:"Random picture",example:"<% await tp.web.random_picture() %>"},{name:"Random picture with size",example:'<% await tp.web.random_picture("200x200") %>'},{name:"Random picture with size and query",example:'<% await tp.web.random_picture("200x200", "landscape,water") %>'}]},request:{name:"request",description:"Makes a HTTP request to the specified URL. Optionally, you can specify a path to extract specific data from the response.",definition:"tp.web.request(url: string, path?: string)",args:[{name:"url",description:"The URL to which the HTTP request will be made."},{name:"path",description:"A path within the response JSON to extract specific data."}],examples:[{name:"Simple request",example:'<% await tp.web.request("https://jsonplaceholder.typicode.com/todos/1") %>'},{name:"Request with path",example:'<% await tp.web.request("https://jsonplaceholder.typicode.com/todos", "0.title") %>'}]}}}},Rs={tp:iu};var nu=["app","config","date","file","frontmatter","hooks","obsidian","system","user","web"],au=new Set(nu);function zn(e){return typeof e=="string"&&au.has(e)}function Vs(e){return!!(e.definition||e.returns||e.args)}var Wn=class{constructor(t){this.plugin=t;this.documentation=Rs}get_all_modules_documentation(){let t=this.documentation.tp,r=Object.values(t);return(!this.plugin.settings||!this.plugin.settings.user_scripts_folder)&&(r=r.filter(i=>i.name!=="user")),r.map(i=>(i.queryKey=i.name,i))}async get_all_functions_documentation(t,r){if(t==="app")return this.get_app_functions_documentation(this.plugin.app,r);if(t==="user"){if(!this.plugin.settings||!this.plugin.settings.user_scripts_folder)return;let i=await de(()=>Promise.resolve(Re(this.plugin.app,this.plugin.settings.user_scripts_folder).filter(s=>s.extension==="js")),"User Scripts folder doesn't exist");if(!i||i.length===0)return;let n=su(r);if(n){let s=i.find(c=>c.basename===n.scriptName);return s?ou(this.plugin,s,n.scriptName):[]}let a=await de(()=>Sa(this.plugin.app,i),"Failed to parse user script documentation");return!a||a.length===0?void 0:a.reduce((s,c)=>[...s,{name:c.basename,queryKey:c.basename,definition:"",description:c.description??"",returns:c.returns??"",args:Ks(c.arguments??[]),example:""}],[])}if(!!this.documentation.tp[t].functions)return Object.values(this.documentation.tp[t].functions).map(i=>(i.queryKey=i.name,i))}get_app_functions_documentation(t,r){if(!ue(t))return[];let i=r.split(".");if(i.length===0)return[];let n=t;for(let l=0;l{let c=n.get(s),l=c?.args?Object.keys(c.args):[];return{name:s,queryKey:`${r}.${s}`,definition:`tp.user.${r}.${s}(${l.join(", ")})`,description:c?.description??"",returns:c?.returns??"",args:c?.args,example:""}})}function cu(e){let t;try{t=Yn(e,{ecmaVersion:"latest",sourceType:"module"})}catch{try{t=Yn(e,{ecmaVersion:"latest",sourceType:"script",allowReturnOutsideFunction:!0})}catch{return[]}}if(!ue(t)||!Array.isArray(t.body))return[];let r=new Set;for(let i of t.body)lu(i,r);return[...r]}function bi(e,t,r){if(!ue(e)||e.type!=="MemberExpression"||e.computed)return!1;let i=e.object,n=e.property;return ue(i)&&i.type==="Identifier"&&i.name===t&&ue(n)&&n.type==="Identifier"&&n.name===r}function Hs(e,t){if(!(!ue(e)||e.type!=="ObjectExpression"||!Array.isArray(e.properties)))for(let r of e.properties){if(!ue(r)||r.type!=="Property"||r.computed)continue;let i=r.key;!ue(i)||(i.type==="Identifier"&&typeof i.name=="string"?t.add(i.name):i.type==="Literal"&&typeof i.value=="string"&&t.add(i.value))}}function uu(e){if(e.computed)return null;let t=e.property;if(!ue(t)||t.type!=="Identifier"||typeof t.name!="string")return null;let r=e.object;return bi(r,"module","exports")||bi(r,"exports","default")||ue(r)&&r.type==="Identifier"&&r.name==="exports"?t.name:null}function lu(e,t){if(!ue(e))return;if(e.type==="ExportDefaultDeclaration"){Hs(e.declaration,t);return}if(e.type!=="ExpressionStatement")return;let r=e.expression;if(!ue(r)||r.type!=="AssignmentExpression"||r.operator!=="=")return;let i=r.left;if(!ue(i)||i.type!=="MemberExpression")return;if(bi(i,"module","exports")||bi(i,"exports","default")){Hs(r.right,t);return}let n=uu(i);n&&t.add(n)}function pu(e){let t=new Map,r="\\/\\*\\*[\\s\\S]*?\\*\\/",i="[$A-Z_a-z][$\\w]*",n=[new RegExp(`(${r})\\s*(?:async\\s+)?function\\s+(${i})\\s*\\(`,"g"),new RegExp(`(${r})\\s*(?:const|let|var)\\s+(${i})\\s*=`,"g"),new RegExp(`(${r})\\s*(${i})\\s*:`,"g"),new RegExp(`(${r})\\s*["'](${i})["']\\s*:`,"g"),new RegExp(`(${r})\\s*(?:async\\s+)?(${i})\\s*\\([^)]*\\)\\s*{`,"g"),new RegExp(`(${r})\\s*(${i})\\s*(?=,|})`,"g")];for(let a of n)for(let s of e.matchAll(a)){let c=zi(s[1]);t.set(s[2],{description:c.description,returns:c.returns,args:Ks(c.arguments)})}return t}function Ks(e){if(e.length!==0)return e.reduce((t,r)=>(t[r.name]={name:r.name,description:r.description},t),{})}var Jn=class extends Us.EditorSuggest{constructor(t){super(t.app);this.tp_keyword_regex=/tp\.(?[a-z]*)?(?\.(?[a-zA-Z_.]*)?)?$/;this.module_name="";this.function_trigger=!1;this.function_name="";this.documentation=new Wn(t),this.intellisense_render_setting=t.settings.intellisense_render}onTrigger(t,r,i){let n=r.getRange({line:t.line,ch:0},{line:t.line,ch:t.ch}),a=this.tp_keyword_regex.exec(n);if(!a)return null;let s,c=a.groups&&a.groups.module||"";if(zn(c)&&(this.module_name=c),a.groups&&a.groups.fn_trigger){if(c==""||!zn(c))return null;this.function_trigger=!0,this.function_name=a.groups.fn||"",s=this.function_name}else this.function_trigger=!1,s=this.module_name;let l={start:{line:t.line,ch:t.ch-s.length},end:{line:t.line,ch:t.ch},query:s};return this.latest_trigger_info=l,l}async getSuggestions(t){let r;return this.module_name&&this.function_trigger?r=await this.documentation.get_all_functions_documentation(this.module_name,this.function_name):r=this.documentation.get_all_modules_documentation(),r?r.filter(i=>i.queryKey.toLowerCase().startsWith(t.query.toLowerCase())):[]}renderSuggestion(t,r){let i=Vs(t),n=i&&t.args&&this.getNumberOfArguments(t.args)>0&&Na(this.intellisense_render_setting),a=i&&t.returns&&Ia(this.intellisense_render_setting),s=i&&this.function_trigger&&t.definition,c=t.description&&Da(this.intellisense_render_setting),l=n||a||s||c;if(r.createEl("b",{text:t.name}),l&&r.createEl("br"),i){if(n){r.createEl("p",{text:"Parameter list:"});let h=r.createEl("ol");for(let[m,_]of Object.entries(t.args??{}))Ji(h,m,_.description)}a&&Ji(r,"Returns",t.returns)}s&&r.createEl("code",{text:t.definition}),c&&r.createDiv({text:t.description})}selectSuggestion(t,r){let i=this.app.workspace.activeEditor;if(!(!i||!i.editor)&&!!this.latest_trigger_info&&(i.editor.replaceRange(t.queryKey,this.latest_trigger_info.start,this.latest_trigger_info.end),this.latest_trigger_info.start.ch==this.latest_trigger_info.end.ch)){let n=this.latest_trigger_info.end;n.ch+=t.queryKey.length,i.editor.setCursor(n)}}getNumberOfArguments(t){try{return new Map(Object.entries(t)).size}catch{return 0}}updateAutocompleteIntellisenseSetting(t){this.intellisense_render_setting=t}};(function(e){e(window.CodeMirror)})(function(e){"use strict";e.defineMode("javascript",function(t,r){var i=t.indentUnit,n=r.statementIndent,a=r.jsonld,s=r.json||a,c=r.trackScope!==!1,l=r.typescript,h=r.wordCharacters||/[\w$\xa1-\uffff]/,m=function(){function o(fe){return{type:fe,style:"keyword"}}var p=o("keyword a"),A=o("keyword b"),y=o("keyword c"),M=o("keyword d"),H=o("operator"),J={type:"atom",style:"atom"};return{if:o("if"),while:p,with:p,else:A,do:A,try:A,finally:A,return:M,break:M,continue:M,new:o("new"),delete:y,void:y,throw:y,debugger:o("debugger"),var:o("var"),const:o("var"),let:o("var"),function:o("function"),catch:o("catch"),for:o("for"),switch:o("switch"),case:o("case"),default:o("default"),in:H,typeof:H,instanceof:H,true:J,false:J,null:J,undefined:J,NaN:J,Infinity:J,this:o("this"),class:o("class"),super:o("atom"),yield:y,export:o("export"),import:o("import"),extends:y,await:y}}(),_=/[+\-*&%=<>!?|~^@]/,k=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function F(o){for(var p=!1,A,y=!1;(A=o.next())!=null;){if(!p){if(A=="/"&&!y)return;A=="["?y=!0:y&&A=="]"&&(y=!1)}p=!p&&A=="\\"}}var O,U;function P(o,p,A){return O=o,U=A,p}function Y(o,p){var A=o.next();if(A=='"'||A=="'")return p.tokenize=xe(A),p.tokenize(o,p);if(A=="."&&o.match(/^\d[\d_]*(?:[eE][+-]?[\d_]+)?/))return P("number","number");if(A=="."&&o.match(".."))return P("spread","meta");if(/[[\]{}(),;:.]/.test(A))return P(A);if(A=="="&&o.eat(">"))return P("=>","operator");if(A=="0"&&o.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return P("number","number");if(/\d/.test(A))return o.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?/),P("number","number");if(A=="/")return o.eat("*")?(p.tokenize=ye,ye(o,p)):o.eat("/")?(o.skipToEnd(),P("comment","comment")):ma(o,p,1)?(F(o),o.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),P("regexp","string-2")):(o.eat("="),P("operator","operator",o.current()));if(A=="`")return p.tokenize=re,re(o,p);if(A=="#"&&o.peek()=="!")return o.skipToEnd(),P("meta","meta");if(A=="#"&&o.eatWhile(h))return P("variable","property");if(A=="<"&&o.match("!--")||A=="-"&&o.match("->")&&!/\S/.test(o.string.slice(0,o.start)))return o.skipToEnd(),P("comment","comment");if(_.test(A))return(A!=">"||!p.lexical||p.lexical.type!=">")&&(o.eat("=")?(A=="!"||A=="=")&&o.eat("="):/[<>*+\-|&?]/.test(A)&&(o.eat(A),A==">"&&o.eat(A))),A=="?"&&o.eat(".")?P("."):P("operator","operator",o.current());if(h.test(A)){o.eatWhile(h);var y=o.current();if(p.lastType!="."){if(Object.prototype.propertyIsEnumerable.call(m,y)){var M=m[y];return P(M.type,M.style,y)}if(y=="async"&&o.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[[(\w]/,!1))return P("async","keyword",y)}return P("variable","variable",y)}}function xe(o){return function(p,A){var y=!1,M;if(a&&p.peek()=="@"&&p.match(k))return A.tokenize=Y,P("jsonld-keyword","meta");for(;(M=p.next())!=null&&!(M==o&&!y);)y=!y&&M=="\\";return y||(A.tokenize=Y),P("string","string")}}function ye(o,p){for(var A=!1,y;y=o.next();){if(y=="/"&&A){p.tokenize=Y;break}A=y=="*"}return P("comment","comment")}function re(o,p){for(var A=!1,y;(y=o.next())!=null;){if(!A&&(y=="`"||y=="$"&&o.eat("{"))){p.tokenize=Y;break}A=!A&&y=="\\"}return P("quasi","string-2",o.current())}var _t="([{}])";function Ie(o,p){p.fatArrowAt&&(p.fatArrowAt=null);var A=o.string.indexOf("=>",o.start);if(!(A<0)){if(l){var y=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(o.string.slice(o.start,A));y&&(A=y.index)}for(var M=0,H=!1,J=A-1;J>=0;--J){var fe=o.string.charAt(J),qe=_t.indexOf(fe);if(qe>=0&&qe<3){if(!M){++J;break}if(--M==0){fe=="("&&(H=!0);break}}else if(qe>=3&&qe<6)++M;else if(h.test(fe))H=!0;else if(/["'/`]/.test(fe))for(;;--J){if(J==0)return;var yo=o.string.charAt(J-1);if(yo==fe&&o.string.charAt(J-2)!="\\"){J--;break}}else if(H&&!M){++J;break}}H&&!M&&(p.fatArrowAt=J)}}var wi={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function wr(o,p,A,y,M,H){this.indented=o,this.column=p,this.type=A,this.prev=M,this.info=H,y!=null&&(this.align=y)}function ki(o,p){if(!c)return!1;for(var A=o.localVars;A;A=A.next)if(A.name==p)return!0;for(var y=o.context;y;y=y.prev)for(A=y.vars;A;A=A.next)if(A.name==p)return!0}function tr(o,p,A,y,M){var H=o.cc;for(x.state=o,x.stream=M,x.marked=null,x.cc=H,x.style=p,Object.prototype.hasOwnProperty.call(o.lexical,"align")||(o.lexical.align=!0);;){var J=H.length?H.pop():s?Q:ae;if(J(A,y)){for(;H.length&&H[H.length-1].lex;)H.pop()();return x.marked?x.marked:A=="variable"&&ki(o,y)?"variable-2":p}}}var x={state:null,column:null,marked:null,cc:null};function I(){for(var o=arguments.length-1;o>=0;o--)x.cc.push(arguments[o])}function d(){return I.apply(null,arguments),!0}function ji(o,p){for(var A=p;A;A=A.next)if(A.name==o)return!0;return!1}function Dt(o){var p=x.state;if(x.marked="def",!!c){if(p.context){if(p.lexical.info=="var"&&p.context&&p.context.block){var A=ra(o,p.context);if(A!=null){p.context=A;return}}else if(!ji(o,p.localVars)){p.localVars=new ir(o,p.localVars);return}}r.globalVars&&!ji(o,p.globalVars)&&(p.globalVars=new ir(o,p.globalVars))}}function ra(o,p){if(p)if(p.block){var A=ra(o,p.prev);return A?A==p.prev?p:new rr(A,p.vars,!0):null}else return ji(o,p.vars)?p:new rr(p.prev,new ir(o,p.vars),!1);else return null}function kr(o){return o=="public"||o=="private"||o=="protected"||o=="abstract"||o=="readonly"}function rr(o,p,A){this.prev=o,this.vars=p,this.block=A}function ir(o,p){this.name=o,this.next=p}var zs=new ir("this",new ir("arguments",null));function Mt(){x.state.context=new rr(x.state.context,x.state.localVars,!1),x.state.localVars=zs}function Ti(){x.state.context=new rr(x.state.context,x.state.localVars,!0),x.state.localVars=null}function Ne(){x.state.localVars=x.state.context.vars,x.state.context=x.state.context.prev}Ne.lex=!0;function B(o,p){var A=function(){var y=x.state,M=y.indented;if(y.lexical.type=="stat")M=y.lexical.indented;else for(var H=y.lexical;H&&H.type==")"&&H.align;H=H.prev)M=H.indented;y.lexical=new wr(M,x.stream.column(),o,null,y.lexical,p)};return A.lex=!0,A}function D(){var o=x.state;o.lexical.prev&&(o.lexical.type==")"&&(o.indented=o.lexical.indented),o.lexical=o.lexical.prev)}D.lex=!0;function V(o){function p(A){return A==o?d():o==";"||A=="}"||A==")"||A=="]"?I():d(p)}return p}function ae(o,p){return o=="var"?d(B("vardef",p),Ii,V(";"),D):o=="keyword a"?d(B("form"),Ei,ae,D):o=="keyword b"?d(B("form"),ae,D):o=="keyword d"?x.stream.match(/^\s*$/,!1)?d():d(B("stat"),Ft,V(";"),D):o=="debugger"?d(V(";")):o=="{"?d(B("}"),Ti,Er,D,Ne):o==";"?d():o=="if"?(x.state.lexical.info=="else"&&x.state.cc[x.state.cc.length-1]==D&&x.state.cc.pop()(),d(B("form"),Ei,ae,D,ca)):o=="function"?d(ot):o=="for"?d(B("form"),Ti,ua,ae,Ne,D):o=="class"||l&&p=="interface"?(x.marked="keyword",d(B("form",o=="class"?o:p),pa,D)):o=="variable"?l&&p=="declare"?(x.marked="keyword",d(ae)):l&&(p=="module"||p=="enum"||p=="type")&&x.stream.match(/^\s*\w/,!1)?(x.marked="keyword",p=="enum"?d(da):p=="type"?d(la,V("operator"),W,V(";")):d(B("form"),De,V("{"),B("}"),Er,D,D)):l&&p=="namespace"?(x.marked="keyword",d(B("form"),Q,ae,D)):l&&p=="abstract"?(x.marked="keyword",d(ae)):d(B("stat"),eo):o=="switch"?d(B("form"),Ei,V("{"),B("}","switch"),Ti,Er,D,D,Ne):o=="case"?d(Q,V(":")):o=="default"?d(V(":")):o=="catch"?d(B("form"),Mt,Ws,ae,D,Ne):o=="export"?d(B("stat"),ho,D):o=="import"?d(B("stat"),mo,D):o=="async"?d(ae):p=="@"?d(Q,ae):I(B("stat"),Q,V(";"),D)}function Ws(o){if(o=="(")return d(vt,V(")"))}function Q(o,p){return ia(o,p,!1)}function ve(o,p){return ia(o,p,!0)}function Ei(o){return o!="("?I():d(B(")"),Ft,V(")"),D)}function ia(o,p,A){if(x.state.fatArrowAt==x.stream.start){var y=A?aa:na;if(o=="(")return d(Mt,B(")"),oe(vt,")"),D,V("=>"),y,Ne);if(o=="variable")return I(Mt,De,V("=>"),y,Ne)}var M=A?Bt:xt;return Object.prototype.hasOwnProperty.call(wi,o)?d(M):o=="function"?d(ot,M):o=="class"||l&&p=="interface"?(x.marked="keyword",d(B("form"),fo,D)):o=="keyword c"||o=="async"?d(A?ve:Q):o=="("?d(B(")"),Ft,V(")"),D,M):o=="operator"||o=="spread"?d(A?ve:Q):o=="["?d(B("]"),Ao,D,M):o=="{"?nr(Tr,"}",null,M):o=="quasi"?I(jr,M):o=="new"?d(Qs(A)):d()}function Ft(o){return o.match(/[;})\],]/)?I():I(Q)}function xt(o,p){return o==","?d(Ft):Bt(o,p,!1)}function Bt(o,p,A){var y=A==!1?xt:Bt,M=A==!1?Q:ve;if(o=="=>")return d(Mt,A?aa:na,Ne);if(o=="operator")return/\+\+|--/.test(p)||l&&p=="!"?d(y):l&&p=="<"&&x.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?d(B(">"),oe(W,">"),D,y):p=="?"?d(Q,V(":"),M):d(M);if(o=="quasi")return I(jr,y);if(o!=";"){if(o=="(")return nr(ve,")","call",y);if(o==".")return d(to,y);if(o=="[")return d(B("]"),Ft,V("]"),D,y);if(l&&p=="as")return x.marked="keyword",d(W,y);if(o=="regexp")return x.state.lastType=x.marked="operator",x.stream.backUp(x.stream.pos-x.stream.start-1),d(M)}}function jr(o,p){return o!="quasi"?I():p.slice(p.length-2)!="${"?d(jr):d(Ft,Js)}function Js(o){if(o=="}")return x.marked="string-2",x.state.tokenize=re,d(jr)}function na(o){return Ie(x.stream,x.state),I(o=="{"?ae:Q)}function aa(o){return Ie(x.stream,x.state),I(o=="{"?ae:ve)}function Qs(o){return function(p){return p=="."?d(o?Zs:Xs):p=="variable"&&l?d(oo,o?Bt:xt):I(o?ve:Q)}}function Xs(o,p){if(p=="target")return x.marked="keyword",d(xt)}function Zs(o,p){if(p=="target")return x.marked="keyword",d(Bt)}function eo(o){return o==":"?d(D,ae):I(xt,V(";"),D)}function to(o){if(o=="variable")return x.marked="property",d()}function Tr(o,p){if(o=="async")return x.marked="property",d(Tr);if(o=="variable"||x.style=="keyword"){if(x.marked="property",p=="get"||p=="set")return d(ro);var A;return l&&x.state.fatArrowAt==x.stream.start&&(A=x.stream.match(/^\s*:\s*/,!1))&&(x.state.fatArrowAt=x.stream.pos+A[0].length),d(yt)}else{if(o=="number"||o=="string")return x.marked=a?"property":x.style+" property",d(yt);if(o=="jsonld-keyword")return d(yt);if(l&&kr(p))return x.marked="keyword",d(Tr);if(o=="[")return d(Q,Ot,V("]"),yt);if(o=="spread")return d(ve,yt);if(p=="*")return x.marked="keyword",d(Tr);if(o==":")return I(yt)}}function ro(o){return o!="variable"?I(yt):(x.marked="property",d(ot))}function yt(o){if(o==":")return d(ve);if(o=="(")return I(ot)}function oe(o,p,A){function y(M,H){if(A?A.indexOf(M)>-1:M==","){var J=x.state.lexical;return J.info=="call"&&(J.pos=(J.pos||0)+1),d(function(fe,qe){return fe==p||qe==p?I():I(o)},y)}return M==p||H==p?d():A&&A.indexOf(";")>-1?I(o):d(V(p))}return function(M,H){return M==p||H==p?d():I(o,y)}}function nr(o,p,A){for(var y=3;y"),W);if(o=="quasi")return I(Ci,Ye)}function ao(o){if(o=="=>")return d(W)}function Si(o){return o.match(/[})\]]/)?d():o==","||o==";"?d(Si):I(ar,Si)}function ar(o,p){if(o=="variable"||x.style=="keyword")return x.marked="property",d(ar);if(p=="?"||o=="number"||o=="string")return d(ar);if(o==":")return d(W);if(o=="[")return d(V("variable"),io,V("]"),ar);if(o=="(")return I(Lt,ar);if(!o.match(/[;})\],]/))return d()}function Ci(o,p){return o!="quasi"?I():p.slice(p.length-2)!="${"?d(Ci):d(W,so)}function so(o){if(o=="}")return x.marked="string-2",x.state.tokenize=re,d(Ci)}function Pi(o,p){return o=="variable"&&x.stream.match(/^\s*[?:]/,!1)||p=="?"?d(Pi):o==":"?d(W):o=="spread"?d(Pi):I(W)}function Ye(o,p){if(p=="<")return d(B(">"),oe(W,">"),D,Ye);if(p=="|"||o=="."||p=="&")return d(W);if(o=="[")return d(W,V("]"),Ye);if(p=="extends"||p=="implements")return x.marked="keyword",d(W);if(p=="?")return d(W,V(":"),W)}function oo(o,p){if(p=="<")return d(B(">"),oe(W,">"),D,Ye)}function Sr(){return I(W,co)}function co(o,p){if(p=="=")return d(W)}function Ii(o,p){return p=="enum"?(x.marked="keyword",d(da)):I(De,Ot,st,lo)}function De(o,p){if(l&&kr(p))return x.marked="keyword",d(De);if(o=="variable")return Dt(p),d();if(o=="spread")return d(De);if(o=="[")return nr(uo,"]");if(o=="{")return nr(oa,"}")}function oa(o,p){return o=="variable"&&!x.stream.match(/^\s*:/,!1)?(Dt(p),d(st)):(o=="variable"&&(x.marked="property"),o=="spread"?d(De):o=="}"?I():o=="["?d(Q,V("]"),V(":"),oa):d(V(":"),De,st))}function uo(){return I(De,st)}function st(o,p){if(p=="=")return d(ve)}function lo(o){if(o==",")return d(Ii)}function ca(o,p){if(o=="keyword b"&&p=="else")return d(B("form","else"),ae,D)}function ua(o,p){if(p=="await")return d(ua);if(o=="(")return d(B(")"),po,D)}function po(o){return o=="var"?d(Ii,qt):o=="variable"?d(qt):I(qt)}function qt(o,p){return o==")"?d():o==";"?d(qt):p=="in"||p=="of"?(x.marked="keyword",d(Q,qt)):I(Q,qt)}function ot(o,p){if(p=="*")return x.marked="keyword",d(ot);if(o=="variable")return Dt(p),d(ot);if(o=="(")return d(Mt,B(")"),oe(vt,")"),D,sa,ae,Ne);if(l&&p=="<")return d(B(">"),oe(Sr,">"),D,ot)}function Lt(o,p){if(p=="*")return x.marked="keyword",d(Lt);if(o=="variable")return Dt(p),d(Lt);if(o=="(")return d(Mt,B(")"),oe(vt,")"),D,sa,Ne);if(l&&p=="<")return d(B(">"),oe(Sr,">"),D,Lt)}function la(o,p){if(o=="keyword"||o=="variable")return x.marked="type",d(la);if(p=="<")return d(B(">"),oe(Sr,">"),D)}function vt(o,p){return p=="@"&&d(Q,vt),o=="spread"?d(vt):l&&kr(p)?(x.marked="keyword",d(vt)):l&&o=="this"?d(Ot,st):I(De,Ot,st)}function fo(o,p){return o=="variable"?pa(o,p):Cr(o,p)}function pa(o,p){if(o=="variable")return Dt(p),d(Cr)}function Cr(o,p){if(p=="<")return d(B(">"),oe(Sr,">"),D,Cr);if(p=="extends"||p=="implements"||l&&o==",")return p=="implements"&&(x.marked="keyword"),d(l?W:Q,Cr);if(o=="{")return d(B("}"),ze,D)}function ze(o,p){if(o=="async"||o=="variable"&&(p=="static"||p=="get"||p=="set"||l&&kr(p))&&x.stream.match(/^\s+[\w$\xa1-\uffff]/,!1))return x.marked="keyword",d(ze);if(o=="variable"||x.style=="keyword")return x.marked="property",d(sr,ze);if(o=="number"||o=="string")return d(sr,ze);if(o=="[")return d(Q,Ot,V("]"),sr,ze);if(p=="*")return x.marked="keyword",d(ze);if(l&&o=="(")return I(Lt,ze);if(o==";"||o==",")return d(ze);if(o=="}")return d();if(p=="@")return d(Q,ze)}function sr(o,p){if(p=="!"||p=="?")return d(sr);if(o==":")return d(W,st);if(p=="=")return d(ve);var A=x.state.lexical.prev,y=A&&A.info=="interface";return I(y?Lt:ot)}function ho(o,p){return p=="*"?(x.marked="keyword",d(Ni,V(";"))):p=="default"?(x.marked="keyword",d(Q,V(";"))):o=="{"?d(oe(fa,"}"),Ni,V(";")):I(ae)}function fa(o,p){if(p=="as")return x.marked="keyword",d(V("variable"));if(o=="variable")return I(ve,fa)}function mo(o){return o=="string"?d():o=="("?I(Q):o=="."?I(xt):I(Pr,ha,Ni)}function Pr(o,p){return o=="{"?nr(Pr,"}"):(o=="variable"&&Dt(p),p=="*"&&(x.marked="keyword"),d(go))}function ha(o){if(o==",")return d(Pr,ha)}function go(o,p){if(p=="as")return x.marked="keyword",d(Pr)}function Ni(o,p){if(p=="from")return x.marked="keyword",d(Q)}function Ao(o){return o=="]"?d():I(oe(ve,"]"))}function da(){return I(B("form"),De,V("{"),B("}"),oe(_o,"}"),D,D)}function _o(){return I(De,st)}function xo(o,p){return o.lastType=="operator"||o.lastType==","||_.test(p.charAt(0))||/[,.]/.test(p.charAt(0))}function ma(o,p,A){return p.tokenize==Y&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[[{}(,;:]|=>)$/.test(p.lastType)||p.lastType=="quasi"&&/\{\s*$/.test(o.string.slice(0,o.pos-(A||0)))}return{startState:function(o){var p={tokenize:Y,lastType:"sof",cc:[],lexical:new wr((o||0)-i,0,"block",!1),localVars:r.localVars,context:r.localVars&&new rr(null,null,!1),indented:o||0};return r.globalVars&&typeof r.globalVars=="object"&&(p.globalVars=r.globalVars),p},token:function(o,p){if(o.sol()&&(Object.prototype.hasOwnProperty.call(p.lexical,"align")||(p.lexical.align=!1),p.indented=o.indentation(),Ie(o,p)),p.tokenize!=ye&&o.eatSpace())return null;var A=p.tokenize(o,p);return O=="comment"?A:(p.lastType=O=="operator"&&(U=="++"||U=="--")?"incdec":O,tr(p,A,O,U,o))},indent:function(o,p){if(o.tokenize==ye||o.tokenize==re)return e.Pass;if(o.tokenize!=Y)return 0;var A=p&&p.charAt(0),y=o.lexical,M;if(!/^\s*else\b/.test(p))for(var H=o.cc.length-1;H>=0;--H){var J=o.cc[H];if(J==D)y=y.prev;else if(J!=ca&&J!=Ne)break}for(;(y.type=="stat"||y.type=="form")&&(A=="}"||(M=o.cc[o.cc.length-1])&&(M==xt||M==Bt)&&!/^[,.=+\-*:?[(]/.test(p));)y=y.prev;n&&y.type==")"&&y.prev.type=="stat"&&(y=y.prev);var fe=y.type,qe=A==fe;return fe=="vardef"?y.indented+(o.lastType=="operator"||o.lastType==","?y.info.length+1:0):fe=="form"&&A=="{"?y.indented:fe=="form"?y.indented+i:fe=="stat"?y.indented+(xo(o,p)?n||i:0):y.info=="switch"&&!qe&&r.doubleIndentSwitch!=!1?y.indented+(/^(?:case|default)\b/.test(p)?i:2*i):y.align?y.column+(qe?0:1):y.indented+(qe?0:i)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:s?null:"/*",blockCommentEnd:s?null:"*/",blockCommentContinue:s?null:" * ",lineComment:s?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:s?"json":"javascript",jsonldMode:a,jsonMode:s,expressionAllowed:ma,skipExpression:function(o){tr(o,"atom","atom","true",new e.StringStream("",2,null))}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})});(function(e){e(window.CodeMirror)})(function(e){"use strict";e.customOverlayMode=function(t,r,i){return{startState:function(){return{base:e.startState(t),overlay:e.startState(r),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(n){return{base:e.copyState(t,n.base),overlay:e.copyState(r,n.overlay),basePos:n.basePos,baseCur:null,overlayPos:n.overlayPos,overlayCur:null}},token:function(n,a){return(n!=a.streamSeen||Math.min(a.basePos,a.overlayPos)0&&(this.activeEditorExtensions.pop(),this.plugin.app.workspace.updateOptions())}async jump_to_next_cursor_location(t=null,r=!1){r&&!this.plugin.settings.auto_jump_to_cursor||t&&ft(this.plugin.app)!==t||await this.cursor_jumper.jump_to_next_cursor_location()}async registerCodeMirrorMode(){if(!this.desktopShouldHighlight()&&!this.mobileShouldHighlight())return;let t=window.CodeMirror.getMode({},"javascript");if(t.name==="null"){le(new C("Javascript syntax mode couldn't be found, can't enable syntax highlighting."));return}let r=window.CodeMirror.customOverlayMode;if(r==null){le(new C("Couldn't find customOverlayMode, can't enable syntax highlighting."));return}window.CodeMirror.defineMode(Ys,function(i){let n={startState:function(){return{...window.CodeMirror.startState(t),inCommand:!1,tag_class:"",freeLine:!1}},copyState:function(a){let s=window.CodeMirror.startState(t),c=a;return{...s,inCommand:c.inCommand,tag_class:c.tag_class,freeLine:c.freeLine}},blankLine:function(a){return a.inCommand?"line-background-templater-command-bg":null},token:function(a,s){let c=s;if(a.sol()&&c.inCommand&&(c.freeLine=!0),c.inCommand){let h="";if(a.match(/[-_]{0,1}%>/,!0)){c.inCommand=!1,c.freeLine=!1;let _=c.tag_class;return c.tag_class="",`line-${Zn} ${Xn} ${hu} ${_}`}let m=t.token&&t.token(a,c);return a.peek()==null&&c.freeLine&&(h+=" line-background-templater-command-bg"),c.freeLine||(h+=` line-${Zn}`),`${h} ${Xn} ${m}`}let l=a.match(/<%[-_]{0,1}\s*([*+]{0,1})/,!0);if(l){switch(l[1]){case"*":c.tag_class=mu;break;default:c.tag_class=du;break}return c.inCommand=!0,`line-${Zn} ${Xn} ${fu} ${c.tag_class}`}for(;a.next()!=null&&!a.match(/<%/,!1););return null}};return r(window.CodeMirror.getMode(i,"hypermd"),n)})}updateEditorIntellisenseSetting(t){this.autocomplete.updateAutocompleteIntellisenseSetting(t)}};var ta=class extends er.Plugin{constructor(){super(...arguments);this.settings={...gr}}async onload(){await this.load_settings(),this.templater=new Wt(this),await this.templater.setup(),this.editor_handler=new ea(this),await this.editor_handler.setup(),this.fuzzy_suggester=new ln(this),this.event_handler=new li(this,this.templater),await this.event_handler.setup(),this.command_handler=new Pn(this),this.command_handler.setup(),(0,er.addIcon)("templater-icon",Va),this.addRibbonIcon("templater-icon","Templater",()=>{this.fuzzy_suggester.insert_template()}).setAttribute("id","rb-templater-icon"),this.addSettingTab(new un(this)),this.app.workspace.onLayoutReady(async()=>{await this.templater.execute_startup_scripts()})}async onExternalSettingsChange(){await this.load_settings()}onunload(){this.templater.functions_generator.teardown()}async save_settings(){await this.saveData(this.settings),this.editor_handler.updateEditorIntellisenseSetting(this.settings.intellisense_render),await this.event_handler.update_syntax_highlighting()}async load_settings(){let t=await this.loadData(),{settings:r,affectedSecuritySettings:i,wasMigrated:n}=La(t);this.settings=r,i.length>0&&new er.Notice("Templater: The following settings were reset because they are now device-local: "+i.join(", ")+". Re-enable them in Templater settings if you trust this vault.",0),n&&await this.saveData(this.settings)}}; /* nosourcemap */