@jamiexiongr/panda-hub 0.1.19 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- import{g as ct,r as ke,j as Ae}from"./index-5NBpaOlM.js";var ze,sn;function lt(){if(sn)return ze;sn=1;function t(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(n=>{const s=e[n],h=typeof s;(h==="object"||h==="function")&&!Object.isFrozen(s)&&t(s)}),e}class r{constructor(n){n.data===void 0&&(n.data={}),this.data=n.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function d(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function o(e,...n){const s=Object.create(null);for(const h in e)s[h]=e[h];return n.forEach(function(h){for(const M in h)s[M]=h[M]}),s}const _="</span>",v=e=>!!e.scope,S=(e,{prefix:n})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const s=e.split(".");return[`${n}${s.shift()}`,...s.map((h,M)=>`${h}${"_".repeat(M+1)}`)].join(" ")}return`${n}${e}`};class f{constructor(n,s){this.buffer="",this.classPrefix=s.classPrefix,n.walk(this)}addText(n){this.buffer+=d(n)}openNode(n){if(!v(n))return;const s=S(n.scope,{prefix:this.classPrefix});this.span(s)}closeNode(n){v(n)&&(this.buffer+=_)}value(){return this.buffer}span(n){this.buffer+=`<span class="${n}">`}}const m=(e={})=>{const n={children:[]};return Object.assign(n,e),n};class N{constructor(){this.rootNode=m(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(n){this.top.children.push(n)}openNode(n){const s=m({scope:n});this.add(s),this.stack.push(s)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(n){return this.constructor._walk(n,this.rootNode)}static _walk(n,s){return typeof s=="string"?n.addText(s):s.children&&(n.openNode(s),s.children.forEach(h=>this._walk(n,h)),n.closeNode(s)),n}static _collapse(n){typeof n!="string"&&n.children&&(n.children.every(s=>typeof s=="string")?n.children=[n.children.join("")]:n.children.forEach(s=>{N._collapse(s)}))}}class L extends N{constructor(n){super(),this.options=n}addText(n){n!==""&&this.add(n)}startScope(n){this.openNode(n)}endScope(){this.closeNode()}__addSublanguage(n,s){const h=n.root;s&&(h.scope=`language:${s}`),this.add(h)}toHTML(){return new f(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function I(e){return e?typeof e=="string"?e:e.source:null}function R(e){return O("(?=",e,")")}function U(e){return O("(?:",e,")*")}function X(e){return O("(?:",e,")?")}function O(...e){return e.map(s=>I(s)).join("")}function Y(e){const n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function q(...e){return"("+(Y(e).capture?"":"?:")+e.map(h=>I(h)).join("|")+")"}function H(e){return new RegExp(e.toString()+"|").exec("").length-1}function V(e,n){const s=e&&e.exec(n);return s&&s.index===0}const ae=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Z(e,{joinWith:n}){let s=0;return e.map(h=>{s+=1;const M=s;let k=I(h),l="";for(;k.length>0;){const c=ae.exec(k);if(!c){l+=k;break}l+=k.substring(0,c.index),k=k.substring(c.index+c[0].length),c[0][0]==="\\"&&c[1]?l+="\\"+String(Number(c[1])+M):(l+=c[0],c[0]==="("&&s++)}return l}).map(h=>`(${h})`).join(n)}const G=/\b\B/,ge="[a-zA-Z]\\w*",ee="[a-zA-Z_]\\w*",fe="\\b\\d+(\\.\\d+)?",be="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",he="\\b(0b[01]+)",me="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",_e=(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=O(n,/.*\b/,e.binary,/\b.*/)),o({scope:"meta",begin:n,end:/$/,relevance:0,"on:begin":(s,h)=>{s.index!==0&&h.ignoreMatch()}},e)},ne={begin:"\\\\[\\s\\S]",relevance:0},Ne={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ne]},oe={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ne]},ye={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},A=function(e,n,s={}){const h=o({scope:"comment",begin:e,end:n,contains:[]},s);h.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const M=q("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return h.contains.push({begin:O(/[ ]+/,"(",M,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),h},z=A("//","$"),F=A("/\\*","\\*/"),K=A("#","$"),te={scope:"number",begin:fe,relevance:0},ce={scope:"number",begin:be,relevance:0},_n={scope:"number",begin:he,relevance:0},Nn={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ne,{begin:/\[/,end:/\]/,relevance:0,contains:[ne]}]},yn={scope:"title",begin:ge,relevance:0},Sn={scope:"title",begin:ee,relevance:0},An={begin:"\\.\\s*"+ee,relevance:0};var Te=Object.freeze({__proto__:null,APOS_STRING_MODE:Ne,BACKSLASH_ESCAPE:ne,BINARY_NUMBER_MODE:_n,BINARY_NUMBER_RE:he,COMMENT:A,C_BLOCK_COMMENT_MODE:F,C_LINE_COMMENT_MODE:z,C_NUMBER_MODE:ce,C_NUMBER_RE:be,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(n,s)=>{s.data._beginMatch=n[1]},"on:end":(n,s)=>{s.data._beginMatch!==n[1]&&s.ignoreMatch()}})},HASH_COMMENT_MODE:K,IDENT_RE:ge,MATCH_NOTHING_RE:G,METHOD_GUARD:An,NUMBER_MODE:te,NUMBER_RE:fe,PHRASAL_WORDS_MODE:ye,QUOTE_STRING_MODE:oe,REGEXP_MODE:Nn,RE_STARTERS_RE:me,SHEBANG:_e,TITLE_MODE:yn,UNDERSCORE_IDENT_RE:ee,UNDERSCORE_TITLE_MODE:Sn});function Tn(e,n){e.input[e.index-1]==="."&&n.ignoreMatch()}function xn(e,n){e.className!==void 0&&(e.scope=e.className,delete e.className)}function wn(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Tn,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function Rn(e,n){Array.isArray(e.illegal)&&(e.illegal=q(...e.illegal))}function vn(e,n){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function On(e,n){e.relevance===void 0&&(e.relevance=1)}const Mn=(e,n)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const s=Object.assign({},e);Object.keys(e).forEach(h=>{delete e[h]}),e.keywords=s.keywords,e.begin=O(s.beforeMatch,R(s.begin)),e.starts={relevance:0,contains:[Object.assign(s,{endsParent:!0})]},e.relevance=0,delete s.beforeMatch},kn=["of","and","for","in","not","or","if","then","parent","list","value"],In="keyword";function Ge(e,n,s=In){const h=Object.create(null);return typeof e=="string"?M(s,e.split(" ")):Array.isArray(e)?M(s,e):Object.keys(e).forEach(function(k){Object.assign(h,Ge(e[k],n,k))}),h;function M(k,l){n&&(l=l.map(c=>c.toLowerCase())),l.forEach(function(c){const b=c.split("|");h[b[0]]=[k,Cn(b[0],b[1])]})}}function Cn(e,n){return n?Number(n):Ln(e)?0:1}function Ln(e){return kn.includes(e.toLowerCase())}const Fe={},le=e=>{console.error(e)},We=(e,...n)=>{console.log(`WARN: ${e}`,...n)},pe=(e,n)=>{Fe[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),Fe[`${e}/${n}`]=!0)},xe=new Error;function Ze(e,n,{key:s}){let h=0;const M=e[s],k={},l={};for(let c=1;c<=n.length;c++)l[c+h]=M[c],k[c+h]=!0,h+=H(n[c-1]);e[s]=l,e[s]._emit=k,e[s]._multi=!0}function Dn(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw le("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),xe;if(typeof e.beginScope!="object"||e.beginScope===null)throw le("beginScope must be object"),xe;Ze(e,e.begin,{key:"beginScope"}),e.begin=Z(e.begin,{joinWith:""})}}function Bn(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw le("skip, excludeEnd, returnEnd not compatible with endScope: {}"),xe;if(typeof e.endScope!="object"||e.endScope===null)throw le("endScope must be object"),xe;Ze(e,e.end,{key:"endScope"}),e.end=Z(e.end,{joinWith:""})}}function Un(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Pn(e){Un(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Dn(e),Bn(e)}function $n(e){function n(l,c){return new RegExp(I(l),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(c?"g":""))}class s{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(c,b){b.position=this.position++,this.matchIndexes[this.matchAt]=b,this.regexes.push([b,c]),this.matchAt+=H(c)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const c=this.regexes.map(b=>b[1]);this.matcherRe=n(Z(c,{joinWith:"|"}),!0),this.lastIndex=0}exec(c){this.matcherRe.lastIndex=this.lastIndex;const b=this.matcherRe.exec(c);if(!b)return null;const B=b.findIndex((Se,Le)=>Le>0&&Se!==void 0),C=this.matchIndexes[B];return b.splice(0,B),Object.assign(b,C)}}class h{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(c){if(this.multiRegexes[c])return this.multiRegexes[c];const b=new s;return this.rules.slice(c).forEach(([B,C])=>b.addRule(B,C)),b.compile(),this.multiRegexes[c]=b,b}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(c,b){this.rules.push([c,b]),b.type==="begin"&&this.count++}exec(c){const b=this.getMatcher(this.regexIndex);b.lastIndex=this.lastIndex;let B=b.exec(c);if(this.resumingScanAtSamePosition()&&!(B&&B.index===this.lastIndex)){const C=this.getMatcher(0);C.lastIndex=this.lastIndex+1,B=C.exec(c)}return B&&(this.regexIndex+=B.position+1,this.regexIndex===this.count&&this.considerAll()),B}}function M(l){const c=new h;return l.contains.forEach(b=>c.addRule(b.begin,{rule:b,type:"begin"})),l.terminatorEnd&&c.addRule(l.terminatorEnd,{type:"end"}),l.illegal&&c.addRule(l.illegal,{type:"illegal"}),c}function k(l,c){const b=l;if(l.isCompiled)return b;[xn,vn,Pn,Mn].forEach(C=>C(l,c)),e.compilerExtensions.forEach(C=>C(l,c)),l.__beforeBegin=null,[wn,Rn,On].forEach(C=>C(l,c)),l.isCompiled=!0;let B=null;return typeof l.keywords=="object"&&l.keywords.$pattern&&(l.keywords=Object.assign({},l.keywords),B=l.keywords.$pattern,delete l.keywords.$pattern),B=B||/\w+/,l.keywords&&(l.keywords=Ge(l.keywords,e.case_insensitive)),b.keywordPatternRe=n(B,!0),c&&(l.begin||(l.begin=/\B|\b/),b.beginRe=n(b.begin),!l.end&&!l.endsWithParent&&(l.end=/\B|\b/),l.end&&(b.endRe=n(b.end)),b.terminatorEnd=I(b.end)||"",l.endsWithParent&&c.terminatorEnd&&(b.terminatorEnd+=(l.end?"|":"")+c.terminatorEnd)),l.illegal&&(b.illegalRe=n(l.illegal)),l.contains||(l.contains=[]),l.contains=[].concat(...l.contains.map(function(C){return zn(C==="self"?l:C)})),l.contains.forEach(function(C){k(C,b)}),l.starts&&k(l.starts,c),b.matcher=M(b),b}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=o(e.classNameAliases||{}),k(e)}function Ke(e){return e?e.endsWithParent||Ke(e.starts):!1}function zn(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(n){return o(e,{variants:null},n)})),e.cachedVariants?e.cachedVariants:Ke(e)?o(e,{starts:e.starts?o(e.starts):null}):Object.isFrozen(e)?o(e):e}var Hn="11.11.1";class Gn extends Error{constructor(n,s){super(n),this.name="HTMLInjectionError",this.html=s}}const Ce=d,je=o,Xe=Symbol("nomatch"),Fn=7,Ye=function(e){const n=Object.create(null),s=Object.create(null),h=[];let M=!0;const k="Could not find the language '{}', did you forget to load/include a language module?",l={disableAutodetect:!0,name:"Plain text",contains:[]};let c={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:L};function b(i){return c.noHighlightRe.test(i)}function B(i){let g=i.className+" ";g+=i.parentNode?i.parentNode.className:"";const y=c.languageDetectRe.exec(g);if(y){const x=re(y[1]);return x||(We(k.replace("{}",y[1])),We("Falling back to no-highlight mode for this block.",i)),x?y[1]:"no-highlight"}return g.split(/\s+/).find(x=>b(x)||re(x))}function C(i,g,y){let x="",D="";typeof g=="object"?(x=i,y=g.ignoreIllegals,D=g.language):(pe("10.7.0","highlight(lang, code, ...args) has been deprecated."),pe("10.7.0",`Please use highlight(code, options) instead.
1
+ import{g as ct,r as ke,j as Ae}from"./index-DhjIbKkn.js";var ze,sn;function lt(){if(sn)return ze;sn=1;function t(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(n=>{const s=e[n],h=typeof s;(h==="object"||h==="function")&&!Object.isFrozen(s)&&t(s)}),e}class r{constructor(n){n.data===void 0&&(n.data={}),this.data=n.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function d(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function o(e,...n){const s=Object.create(null);for(const h in e)s[h]=e[h];return n.forEach(function(h){for(const M in h)s[M]=h[M]}),s}const _="</span>",v=e=>!!e.scope,S=(e,{prefix:n})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const s=e.split(".");return[`${n}${s.shift()}`,...s.map((h,M)=>`${h}${"_".repeat(M+1)}`)].join(" ")}return`${n}${e}`};class f{constructor(n,s){this.buffer="",this.classPrefix=s.classPrefix,n.walk(this)}addText(n){this.buffer+=d(n)}openNode(n){if(!v(n))return;const s=S(n.scope,{prefix:this.classPrefix});this.span(s)}closeNode(n){v(n)&&(this.buffer+=_)}value(){return this.buffer}span(n){this.buffer+=`<span class="${n}">`}}const m=(e={})=>{const n={children:[]};return Object.assign(n,e),n};class N{constructor(){this.rootNode=m(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(n){this.top.children.push(n)}openNode(n){const s=m({scope:n});this.add(s),this.stack.push(s)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(n){return this.constructor._walk(n,this.rootNode)}static _walk(n,s){return typeof s=="string"?n.addText(s):s.children&&(n.openNode(s),s.children.forEach(h=>this._walk(n,h)),n.closeNode(s)),n}static _collapse(n){typeof n!="string"&&n.children&&(n.children.every(s=>typeof s=="string")?n.children=[n.children.join("")]:n.children.forEach(s=>{N._collapse(s)}))}}class L extends N{constructor(n){super(),this.options=n}addText(n){n!==""&&this.add(n)}startScope(n){this.openNode(n)}endScope(){this.closeNode()}__addSublanguage(n,s){const h=n.root;s&&(h.scope=`language:${s}`),this.add(h)}toHTML(){return new f(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function I(e){return e?typeof e=="string"?e:e.source:null}function R(e){return O("(?=",e,")")}function U(e){return O("(?:",e,")*")}function X(e){return O("(?:",e,")?")}function O(...e){return e.map(s=>I(s)).join("")}function Y(e){const n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function q(...e){return"("+(Y(e).capture?"":"?:")+e.map(h=>I(h)).join("|")+")"}function H(e){return new RegExp(e.toString()+"|").exec("").length-1}function V(e,n){const s=e&&e.exec(n);return s&&s.index===0}const ae=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Z(e,{joinWith:n}){let s=0;return e.map(h=>{s+=1;const M=s;let k=I(h),l="";for(;k.length>0;){const c=ae.exec(k);if(!c){l+=k;break}l+=k.substring(0,c.index),k=k.substring(c.index+c[0].length),c[0][0]==="\\"&&c[1]?l+="\\"+String(Number(c[1])+M):(l+=c[0],c[0]==="("&&s++)}return l}).map(h=>`(${h})`).join(n)}const G=/\b\B/,ge="[a-zA-Z]\\w*",ee="[a-zA-Z_]\\w*",fe="\\b\\d+(\\.\\d+)?",be="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",he="\\b(0b[01]+)",me="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",_e=(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=O(n,/.*\b/,e.binary,/\b.*/)),o({scope:"meta",begin:n,end:/$/,relevance:0,"on:begin":(s,h)=>{s.index!==0&&h.ignoreMatch()}},e)},ne={begin:"\\\\[\\s\\S]",relevance:0},Ne={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ne]},oe={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ne]},ye={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},A=function(e,n,s={}){const h=o({scope:"comment",begin:e,end:n,contains:[]},s);h.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const M=q("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return h.contains.push({begin:O(/[ ]+/,"(",M,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),h},z=A("//","$"),F=A("/\\*","\\*/"),K=A("#","$"),te={scope:"number",begin:fe,relevance:0},ce={scope:"number",begin:be,relevance:0},_n={scope:"number",begin:he,relevance:0},Nn={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ne,{begin:/\[/,end:/\]/,relevance:0,contains:[ne]}]},yn={scope:"title",begin:ge,relevance:0},Sn={scope:"title",begin:ee,relevance:0},An={begin:"\\.\\s*"+ee,relevance:0};var Te=Object.freeze({__proto__:null,APOS_STRING_MODE:Ne,BACKSLASH_ESCAPE:ne,BINARY_NUMBER_MODE:_n,BINARY_NUMBER_RE:he,COMMENT:A,C_BLOCK_COMMENT_MODE:F,C_LINE_COMMENT_MODE:z,C_NUMBER_MODE:ce,C_NUMBER_RE:be,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(n,s)=>{s.data._beginMatch=n[1]},"on:end":(n,s)=>{s.data._beginMatch!==n[1]&&s.ignoreMatch()}})},HASH_COMMENT_MODE:K,IDENT_RE:ge,MATCH_NOTHING_RE:G,METHOD_GUARD:An,NUMBER_MODE:te,NUMBER_RE:fe,PHRASAL_WORDS_MODE:ye,QUOTE_STRING_MODE:oe,REGEXP_MODE:Nn,RE_STARTERS_RE:me,SHEBANG:_e,TITLE_MODE:yn,UNDERSCORE_IDENT_RE:ee,UNDERSCORE_TITLE_MODE:Sn});function Tn(e,n){e.input[e.index-1]==="."&&n.ignoreMatch()}function xn(e,n){e.className!==void 0&&(e.scope=e.className,delete e.className)}function wn(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Tn,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function Rn(e,n){Array.isArray(e.illegal)&&(e.illegal=q(...e.illegal))}function vn(e,n){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function On(e,n){e.relevance===void 0&&(e.relevance=1)}const Mn=(e,n)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const s=Object.assign({},e);Object.keys(e).forEach(h=>{delete e[h]}),e.keywords=s.keywords,e.begin=O(s.beforeMatch,R(s.begin)),e.starts={relevance:0,contains:[Object.assign(s,{endsParent:!0})]},e.relevance=0,delete s.beforeMatch},kn=["of","and","for","in","not","or","if","then","parent","list","value"],In="keyword";function Ge(e,n,s=In){const h=Object.create(null);return typeof e=="string"?M(s,e.split(" ")):Array.isArray(e)?M(s,e):Object.keys(e).forEach(function(k){Object.assign(h,Ge(e[k],n,k))}),h;function M(k,l){n&&(l=l.map(c=>c.toLowerCase())),l.forEach(function(c){const b=c.split("|");h[b[0]]=[k,Cn(b[0],b[1])]})}}function Cn(e,n){return n?Number(n):Ln(e)?0:1}function Ln(e){return kn.includes(e.toLowerCase())}const Fe={},le=e=>{console.error(e)},We=(e,...n)=>{console.log(`WARN: ${e}`,...n)},pe=(e,n)=>{Fe[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),Fe[`${e}/${n}`]=!0)},xe=new Error;function Ze(e,n,{key:s}){let h=0;const M=e[s],k={},l={};for(let c=1;c<=n.length;c++)l[c+h]=M[c],k[c+h]=!0,h+=H(n[c-1]);e[s]=l,e[s]._emit=k,e[s]._multi=!0}function Dn(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw le("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),xe;if(typeof e.beginScope!="object"||e.beginScope===null)throw le("beginScope must be object"),xe;Ze(e,e.begin,{key:"beginScope"}),e.begin=Z(e.begin,{joinWith:""})}}function Bn(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw le("skip, excludeEnd, returnEnd not compatible with endScope: {}"),xe;if(typeof e.endScope!="object"||e.endScope===null)throw le("endScope must be object"),xe;Ze(e,e.end,{key:"endScope"}),e.end=Z(e.end,{joinWith:""})}}function Un(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Pn(e){Un(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Dn(e),Bn(e)}function $n(e){function n(l,c){return new RegExp(I(l),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(c?"g":""))}class s{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(c,b){b.position=this.position++,this.matchIndexes[this.matchAt]=b,this.regexes.push([b,c]),this.matchAt+=H(c)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const c=this.regexes.map(b=>b[1]);this.matcherRe=n(Z(c,{joinWith:"|"}),!0),this.lastIndex=0}exec(c){this.matcherRe.lastIndex=this.lastIndex;const b=this.matcherRe.exec(c);if(!b)return null;const B=b.findIndex((Se,Le)=>Le>0&&Se!==void 0),C=this.matchIndexes[B];return b.splice(0,B),Object.assign(b,C)}}class h{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(c){if(this.multiRegexes[c])return this.multiRegexes[c];const b=new s;return this.rules.slice(c).forEach(([B,C])=>b.addRule(B,C)),b.compile(),this.multiRegexes[c]=b,b}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(c,b){this.rules.push([c,b]),b.type==="begin"&&this.count++}exec(c){const b=this.getMatcher(this.regexIndex);b.lastIndex=this.lastIndex;let B=b.exec(c);if(this.resumingScanAtSamePosition()&&!(B&&B.index===this.lastIndex)){const C=this.getMatcher(0);C.lastIndex=this.lastIndex+1,B=C.exec(c)}return B&&(this.regexIndex+=B.position+1,this.regexIndex===this.count&&this.considerAll()),B}}function M(l){const c=new h;return l.contains.forEach(b=>c.addRule(b.begin,{rule:b,type:"begin"})),l.terminatorEnd&&c.addRule(l.terminatorEnd,{type:"end"}),l.illegal&&c.addRule(l.illegal,{type:"illegal"}),c}function k(l,c){const b=l;if(l.isCompiled)return b;[xn,vn,Pn,Mn].forEach(C=>C(l,c)),e.compilerExtensions.forEach(C=>C(l,c)),l.__beforeBegin=null,[wn,Rn,On].forEach(C=>C(l,c)),l.isCompiled=!0;let B=null;return typeof l.keywords=="object"&&l.keywords.$pattern&&(l.keywords=Object.assign({},l.keywords),B=l.keywords.$pattern,delete l.keywords.$pattern),B=B||/\w+/,l.keywords&&(l.keywords=Ge(l.keywords,e.case_insensitive)),b.keywordPatternRe=n(B,!0),c&&(l.begin||(l.begin=/\B|\b/),b.beginRe=n(b.begin),!l.end&&!l.endsWithParent&&(l.end=/\B|\b/),l.end&&(b.endRe=n(b.end)),b.terminatorEnd=I(b.end)||"",l.endsWithParent&&c.terminatorEnd&&(b.terminatorEnd+=(l.end?"|":"")+c.terminatorEnd)),l.illegal&&(b.illegalRe=n(l.illegal)),l.contains||(l.contains=[]),l.contains=[].concat(...l.contains.map(function(C){return zn(C==="self"?l:C)})),l.contains.forEach(function(C){k(C,b)}),l.starts&&k(l.starts,c),b.matcher=M(b),b}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=o(e.classNameAliases||{}),k(e)}function Ke(e){return e?e.endsWithParent||Ke(e.starts):!1}function zn(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(n){return o(e,{variants:null},n)})),e.cachedVariants?e.cachedVariants:Ke(e)?o(e,{starts:e.starts?o(e.starts):null}):Object.isFrozen(e)?o(e):e}var Hn="11.11.1";class Gn extends Error{constructor(n,s){super(n),this.name="HTMLInjectionError",this.html=s}}const Ce=d,je=o,Xe=Symbol("nomatch"),Fn=7,Ye=function(e){const n=Object.create(null),s=Object.create(null),h=[];let M=!0;const k="Could not find the language '{}', did you forget to load/include a language module?",l={disableAutodetect:!0,name:"Plain text",contains:[]};let c={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:L};function b(i){return c.noHighlightRe.test(i)}function B(i){let g=i.className+" ";g+=i.parentNode?i.parentNode.className:"";const y=c.languageDetectRe.exec(g);if(y){const x=re(y[1]);return x||(We(k.replace("{}",y[1])),We("Falling back to no-highlight mode for this block.",i)),x?y[1]:"no-highlight"}return g.split(/\s+/).find(x=>b(x)||re(x))}function C(i,g,y){let x="",D="";typeof g=="object"?(x=i,y=g.ignoreIllegals,D=g.language):(pe("10.7.0","highlight(lang, code, ...args) has been deprecated."),pe("10.7.0",`Please use highlight(code, options) instead.
2
2
  https://github.com/highlightjs/highlight.js/issues/2277`),D=i,x=g),y===void 0&&(y=!0);const j={code:x,language:D};Re("before:highlight",j);const se=j.result?j.result:Se(j.language,j.code,y);return se.code=j.code,Re("after:highlight",se),se}function Se(i,g,y,x){const D=Object.create(null);function j(a,u){return a.keywords[u]}function se(){if(!p.keywords){P.addText(w);return}let a=0;p.keywordPatternRe.lastIndex=0;let u=p.keywordPatternRe.exec(w),E="";for(;u;){E+=w.substring(a,u.index);const T=Q.case_insensitive?u[0].toLowerCase():u[0],$=j(p,T);if($){const[ie,at]=$;if(P.addText(E),E="",D[T]=(D[T]||0)+1,D[T]<=Fn&&(Me+=at),ie.startsWith("_"))E+=u[0];else{const ot=Q.classNameAliases[ie]||ie;J(u[0],ot)}}else E+=u[0];a=p.keywordPatternRe.lastIndex,u=p.keywordPatternRe.exec(w)}E+=w.substring(a),P.addText(E)}function ve(){if(w==="")return;let a=null;if(typeof p.subLanguage=="string"){if(!n[p.subLanguage]){P.addText(w);return}a=Se(p.subLanguage,w,!0,rn[p.subLanguage]),rn[p.subLanguage]=a._top}else a=De(w,p.subLanguage.length?p.subLanguage:null);p.relevance>0&&(Me+=a.relevance),P.__addSublanguage(a._emitter,a.language)}function W(){p.subLanguage!=null?ve():se(),w=""}function J(a,u){a!==""&&(P.startScope(u),P.addText(a),P.endScope())}function Ve(a,u){let E=1;const T=u.length-1;for(;E<=T;){if(!a._emit[E]){E++;continue}const $=Q.classNameAliases[a[E]]||a[E],ie=u[E];$?J(ie,$):(w=ie,se(),w=""),E++}}function en(a,u){return a.scope&&typeof a.scope=="string"&&P.openNode(Q.classNameAliases[a.scope]||a.scope),a.beginScope&&(a.beginScope._wrap?(J(w,Q.classNameAliases[a.beginScope._wrap]||a.beginScope._wrap),w=""):a.beginScope._multi&&(Ve(a.beginScope,u),w="")),p=Object.create(a,{parent:{value:p}}),p}function nn(a,u,E){let T=V(a.endRe,E);if(T){if(a["on:end"]){const $=new r(a);a["on:end"](u,$),$.isMatchIgnored&&(T=!1)}if(T){for(;a.endsParent&&a.parent;)a=a.parent;return a}}if(a.endsWithParent)return nn(a.parent,u,E)}function nt(a){return p.matcher.regexIndex===0?(w+=a[0],1):($e=!0,0)}function tt(a){const u=a[0],E=a.rule,T=new r(E),$=[E.__beforeBegin,E["on:begin"]];for(const ie of $)if(ie&&(ie(a,T),T.isMatchIgnored))return nt(u);return E.skip?w+=u:(E.excludeBegin&&(w+=u),W(),!E.returnBegin&&!E.excludeBegin&&(w=u)),en(E,a),E.returnBegin?0:u.length}function it(a){const u=a[0],E=g.substring(a.index),T=nn(p,a,E);if(!T)return Xe;const $=p;p.endScope&&p.endScope._wrap?(W(),J(u,p.endScope._wrap)):p.endScope&&p.endScope._multi?(W(),Ve(p.endScope,a)):$.skip?w+=u:($.returnEnd||$.excludeEnd||(w+=u),W(),$.excludeEnd&&(w=u));do p.scope&&P.closeNode(),!p.skip&&!p.subLanguage&&(Me+=p.relevance),p=p.parent;while(p!==T.parent);return T.starts&&en(T.starts,a),$.returnEnd?0:u.length}function rt(){const a=[];for(let u=p;u!==Q;u=u.parent)u.scope&&a.unshift(u.scope);a.forEach(u=>P.openNode(u))}let Oe={};function tn(a,u){const E=u&&u[0];if(w+=a,E==null)return W(),0;if(Oe.type==="begin"&&u.type==="end"&&Oe.index===u.index&&E===""){if(w+=g.slice(u.index,u.index+1),!M){const T=new Error(`0 width match regex (${i})`);throw T.languageName=i,T.badRule=Oe.rule,T}return 1}if(Oe=u,u.type==="begin")return tt(u);if(u.type==="illegal"&&!y){const T=new Error('Illegal lexeme "'+E+'" for mode "'+(p.scope||"<unnamed>")+'"');throw T.mode=p,T}else if(u.type==="end"){const T=it(u);if(T!==Xe)return T}if(u.type==="illegal"&&E==="")return w+=`
3
3
  `,1;if(Pe>1e5&&Pe>u.index*3)throw new Error("potential infinite loop, way more iterations than matches");return w+=E,E.length}const Q=re(i);if(!Q)throw le(k.replace("{}",i)),new Error('Unknown language: "'+i+'"');const st=$n(Q);let Ue="",p=x||st;const rn={},P=new c.__emitter(c);rt();let w="",Me=0,ue=0,Pe=0,$e=!1;try{if(Q.__emitTokens)Q.__emitTokens(g,P);else{for(p.matcher.considerAll();;){Pe++,$e?$e=!1:p.matcher.considerAll(),p.matcher.lastIndex=ue;const a=p.matcher.exec(g);if(!a)break;const u=g.substring(ue,a.index),E=tn(u,a);ue=a.index+E}tn(g.substring(ue))}return P.finalize(),Ue=P.toHTML(),{language:i,value:Ue,relevance:Me,illegal:!1,_emitter:P,_top:p}}catch(a){if(a.message&&a.message.includes("Illegal"))return{language:i,value:Ce(g),illegal:!0,relevance:0,_illegalBy:{message:a.message,index:ue,context:g.slice(ue-100,ue+100),mode:a.mode,resultSoFar:Ue},_emitter:P};if(M)return{language:i,value:Ce(g),illegal:!1,relevance:0,errorRaised:a,_emitter:P,_top:p};throw a}}function Le(i){const g={value:Ce(i),illegal:!1,relevance:0,_top:l,_emitter:new c.__emitter(c)};return g._emitter.addText(i),g}function De(i,g){g=g||c.languages||Object.keys(n);const y=Le(i),x=g.filter(re).filter(Qe).map(W=>Se(W,i,!1));x.unshift(y);const D=x.sort((W,J)=>{if(W.relevance!==J.relevance)return J.relevance-W.relevance;if(W.language&&J.language){if(re(W.language).supersetOf===J.language)return 1;if(re(J.language).supersetOf===W.language)return-1}return 0}),[j,se]=D,ve=j;return ve.secondBest=se,ve}function Wn(i,g,y){const x=g&&s[g]||y;i.classList.add("hljs"),i.classList.add(`language-${x}`)}function Be(i){let g=null;const y=B(i);if(b(y))return;if(Re("before:highlightElement",{el:i,language:y}),i.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",i);return}if(i.children.length>0&&(c.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(i)),c.throwUnescapedHTML))throw new Gn("One of your code blocks includes unescaped HTML.",i.innerHTML);g=i;const x=g.textContent,D=y?C(x,{language:y,ignoreIllegals:!0}):De(x);i.innerHTML=D.value,i.dataset.highlighted="yes",Wn(i,y,D.language),i.result={language:D.language,re:D.relevance,relevance:D.relevance},D.secondBest&&(i.secondBest={language:D.secondBest.language,relevance:D.secondBest.relevance}),Re("after:highlightElement",{el:i,result:D,text:x})}function Zn(i){c=je(c,i)}const Kn=()=>{we(),pe("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function jn(){we(),pe("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let qe=!1;function we(){function i(){we()}if(document.readyState==="loading"){qe||window.addEventListener("DOMContentLoaded",i,!1),qe=!0;return}document.querySelectorAll(c.cssSelector).forEach(Be)}function Xn(i,g){let y=null;try{y=g(e)}catch(x){if(le("Language definition for '{}' could not be registered.".replace("{}",i)),M)le(x);else throw x;y=l}y.name||(y.name=i),n[i]=y,y.rawDefinition=g.bind(null,e),y.aliases&&Je(y.aliases,{languageName:i})}function Yn(i){delete n[i];for(const g of Object.keys(s))s[g]===i&&delete s[g]}function qn(){return Object.keys(n)}function re(i){return i=(i||"").toLowerCase(),n[i]||n[s[i]]}function Je(i,{languageName:g}){typeof i=="string"&&(i=[i]),i.forEach(y=>{s[y.toLowerCase()]=g})}function Qe(i){const g=re(i);return g&&!g.disableAutodetect}function Jn(i){i["before:highlightBlock"]&&!i["before:highlightElement"]&&(i["before:highlightElement"]=g=>{i["before:highlightBlock"](Object.assign({block:g.el},g))}),i["after:highlightBlock"]&&!i["after:highlightElement"]&&(i["after:highlightElement"]=g=>{i["after:highlightBlock"](Object.assign({block:g.el},g))})}function Qn(i){Jn(i),h.push(i)}function Vn(i){const g=h.indexOf(i);g!==-1&&h.splice(g,1)}function Re(i,g){const y=i;h.forEach(function(x){x[y]&&x[y](g)})}function et(i){return pe("10.7.0","highlightBlock will be removed entirely in v12.0"),pe("10.7.0","Please use highlightElement now."),Be(i)}Object.assign(e,{highlight:C,highlightAuto:De,highlightAll:we,highlightElement:Be,highlightBlock:et,configure:Zn,initHighlighting:Kn,initHighlightingOnLoad:jn,registerLanguage:Xn,unregisterLanguage:Yn,listLanguages:qn,getLanguage:re,registerAliases:Je,autoDetection:Qe,inherit:je,addPlugin:Qn,removePlugin:Vn}),e.debugMode=function(){M=!1},e.safeMode=function(){M=!0},e.versionString=Hn,e.regex={concat:O,lookahead:R,either:q,optional:X,anyNumberOfTimes:U};for(const i in Te)typeof Te[i]=="object"&&t(Te[i]);return Object.assign(e,Te),e},Ee=Ye({});return Ee.newInstance=()=>Ye({}),ze=Ee,Ee.HighlightJS=Ee,Ee.default=Ee,ze}var ut=lt();const de=ct(ut),dt=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),gt=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],ft=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],bt=[...gt,...ft],ht=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),pt=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Et=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),mt=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function _t(t){const r=t.regex,d=dt(t),o={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},_="and or not only",v=/@-?\w[\w]*(-\w+)*/,S="[a-zA-Z-][a-zA-Z0-9_-]*",f=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[d.BLOCK_COMMENT,o,d.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+S,relevance:0},d.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+pt.join("|")+")"},{begin:":(:)?("+Et.join("|")+")"}]},d.CSS_VARIABLE,{className:"attribute",begin:"\\b("+mt.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[d.BLOCK_COMMENT,d.HEXCOLOR,d.IMPORTANT,d.CSS_NUMBER_MODE,...f,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...f,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},d.FUNCTION_DISPATCH]},{begin:r.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:v},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:_,attribute:ht.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...f,d.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+bt.join("|")+")\\b"}]}}const an="[A-Za-z$_][0-9A-Za-z$_]*",Nt=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],yt=["true","false","null","undefined","NaN","Infinity"],cn=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ln=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],un=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],St=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],At=[].concat(un,cn,ln);function Tt(t){const r=t.regex,d=(A,{after:z})=>{const F="</"+A[0].slice(1);return A.input.indexOf(F,z)!==-1},o=an,_={begin:"<>",end:"</>"},v=/<[A-Za-z0-9\\._:-]+\s*\/>/,S={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(A,z)=>{const F=A[0].length+A.index,K=A.input[F];if(K==="<"||K===","){z.ignoreMatch();return}K===">"&&(d(A,{after:F})||z.ignoreMatch());let te;const ce=A.input.substring(F);if(te=ce.match(/^\s*=/)){z.ignoreMatch();return}if((te=ce.match(/^\s+extends\s+/))&&te.index===0){z.ignoreMatch();return}}},f={$pattern:an,keyword:Nt,literal:yt,built_in:At,"variable.language":St},m="[0-9](_?[0-9])*",N=`\\.(${m})`,L="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",I={className:"number",variants:[{begin:`(\\b(${L})((${N})|\\.)?|(${N}))[eE][+-]?(${m})\\b`},{begin:`\\b(${L})\\b((${N})\\b|\\.)?|(${N})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},R={className:"subst",begin:"\\$\\{",end:"\\}",keywords:f,contains:[]},U={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,R],subLanguage:"xml"}},X={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,R],subLanguage:"css"}},O={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,R],subLanguage:"graphql"}},Y={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,R]},H={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:o+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},V=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,U,X,O,Y,{match:/\$\d+/},I];R.contains=V.concat({begin:/\{/,end:/\}/,keywords:f,contains:["self"].concat(V)});const ae=[].concat(H,R.contains),Z=ae.concat([{begin:/(\s*)\(/,end:/\)/,keywords:f,contains:["self"].concat(ae)}]),G={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:Z},ge={variants:[{match:[/class/,/\s+/,o,/\s+/,/extends/,/\s+/,r.concat(o,"(",r.concat(/\./,o),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,o],scope:{1:"keyword",3:"title.class"}}]},ee={relevance:0,match:r.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...cn,...ln]}},fe={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},be={variants:[{match:[/function/,/\s+/,o,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[G],illegal:/%/},he={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function me(A){return r.concat("(?!",A.join("|"),")")}const _e={match:r.concat(/\b/,me([...un,"super","import"].map(A=>`${A}\\s*\\(`)),o,r.lookahead(/\s*\(/)),className:"title.function",relevance:0},ne={begin:r.concat(/\./,r.lookahead(r.concat(o,/(?![0-9A-Za-z$_(])/))),end:o,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Ne={match:[/get|set/,/\s+/,o,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},G]},oe="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",ye={match:[/const|var|let/,/\s+/,o,/\s*/,/=\s*/,/(async\s*)?/,r.lookahead(oe)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[G]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:f,exports:{PARAMS_CONTAINS:Z,CLASS_REFERENCE:ee},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),fe,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,U,X,O,Y,H,{match:/\$\d+/},I,ee,{scope:"attr",match:o+r.lookahead(":"),relevance:0},ye,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[H,t.REGEXP_MODE,{className:"function",begin:oe,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:Z}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:_.begin,end:_.end},{match:v},{begin:S.begin,"on:begin":S.isTrulyOpeningTag,end:S.end}],subLanguage:"xml",contains:[{begin:S.begin,end:S.end,skip:!0,contains:["self"]}]}]},be,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[G,t.inherit(t.TITLE_MODE,{begin:o,className:"title.function"})]},{match:/\.\.\./,relevance:0},ne,{match:"\\$"+o,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[G]},_e,he,ge,Ne,{match:/\$[(.]/}]}}function xt(t){const r={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},d={match:/[{}[\],:]/,className:"punctuation",relevance:0},o=["true","false","null"],_={scope:"literal",beginKeywords:o.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:o},contains:[r,d,t.QUOTE_STRING_MODE,_,t.C_NUMBER_MODE,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function wt(t){const r=t.regex,d={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},o={begin:"^[-\\*]{3,}",end:"$"},_={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},v={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},S={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},f=/[A-Za-z][A-Za-z0-9+.-]*/,m={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:r.concat(/\[.+?\]\(/,f,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},N={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},L={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},I=t.inherit(N,{contains:[]}),R=t.inherit(L,{contains:[]});N.contains.push(R),L.contains.push(I);let U=[d,m];return[N,L,I,R].forEach(q=>{q.contains=q.contains.concat(U)}),U=U.concat(N,L),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:U},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:U}]}]},d,v,N,L,{className:"quote",begin:"^>\\s+",contains:U,end:"$"},_,o,m,S,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}const Ie="[A-Za-z$_][0-9A-Za-z$_]*",dn=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],gn=["true","false","null","undefined","NaN","Infinity"],fn=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],bn=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],hn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],pn=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],En=[].concat(hn,fn,bn);function Rt(t){const r=t.regex,d=(A,{after:z})=>{const F="</"+A[0].slice(1);return A.input.indexOf(F,z)!==-1},o=Ie,_={begin:"<>",end:"</>"},v=/<[A-Za-z0-9\\._:-]+\s*\/>/,S={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(A,z)=>{const F=A[0].length+A.index,K=A.input[F];if(K==="<"||K===","){z.ignoreMatch();return}K===">"&&(d(A,{after:F})||z.ignoreMatch());let te;const ce=A.input.substring(F);if(te=ce.match(/^\s*=/)){z.ignoreMatch();return}if((te=ce.match(/^\s+extends\s+/))&&te.index===0){z.ignoreMatch();return}}},f={$pattern:Ie,keyword:dn,literal:gn,built_in:En,"variable.language":pn},m="[0-9](_?[0-9])*",N=`\\.(${m})`,L="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",I={className:"number",variants:[{begin:`(\\b(${L})((${N})|\\.)?|(${N}))[eE][+-]?(${m})\\b`},{begin:`\\b(${L})\\b((${N})\\b|\\.)?|(${N})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},R={className:"subst",begin:"\\$\\{",end:"\\}",keywords:f,contains:[]},U={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,R],subLanguage:"xml"}},X={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,R],subLanguage:"css"}},O={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,R],subLanguage:"graphql"}},Y={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,R]},H={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:o+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},V=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,U,X,O,Y,{match:/\$\d+/},I];R.contains=V.concat({begin:/\{/,end:/\}/,keywords:f,contains:["self"].concat(V)});const ae=[].concat(H,R.contains),Z=ae.concat([{begin:/(\s*)\(/,end:/\)/,keywords:f,contains:["self"].concat(ae)}]),G={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:Z},ge={variants:[{match:[/class/,/\s+/,o,/\s+/,/extends/,/\s+/,r.concat(o,"(",r.concat(/\./,o),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,o],scope:{1:"keyword",3:"title.class"}}]},ee={relevance:0,match:r.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...fn,...bn]}},fe={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},be={variants:[{match:[/function/,/\s+/,o,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[G],illegal:/%/},he={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function me(A){return r.concat("(?!",A.join("|"),")")}const _e={match:r.concat(/\b/,me([...hn,"super","import"].map(A=>`${A}\\s*\\(`)),o,r.lookahead(/\s*\(/)),className:"title.function",relevance:0},ne={begin:r.concat(/\./,r.lookahead(r.concat(o,/(?![0-9A-Za-z$_(])/))),end:o,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Ne={match:[/get|set/,/\s+/,o,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},G]},oe="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",ye={match:[/const|var|let/,/\s+/,o,/\s*/,/=\s*/,/(async\s*)?/,r.lookahead(oe)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[G]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:f,exports:{PARAMS_CONTAINS:Z,CLASS_REFERENCE:ee},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),fe,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,U,X,O,Y,H,{match:/\$\d+/},I,ee,{scope:"attr",match:o+r.lookahead(":"),relevance:0},ye,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[H,t.REGEXP_MODE,{className:"function",begin:oe,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:f,contains:Z}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:_.begin,end:_.end},{match:v},{begin:S.begin,"on:begin":S.isTrulyOpeningTag,end:S.end}],subLanguage:"xml",contains:[{begin:S.begin,end:S.end,skip:!0,contains:["self"]}]}]},be,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[G,t.inherit(t.TITLE_MODE,{begin:o,className:"title.function"})]},{match:/\.\.\./,relevance:0},ne,{match:"\\$"+o,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[G]},_e,he,ge,Ne,{match:/\$[(.]/}]}}function vt(t){const r=t.regex,d=Rt(t),o=Ie,_=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],v={begin:[/namespace/,/\s+/,t.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},S={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:_},contains:[d.exports.CLASS_REFERENCE]},f={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},m=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],N={$pattern:Ie,keyword:dn.concat(m),literal:gn,built_in:En.concat(_),"variable.language":pn},L={className:"meta",begin:"@"+o},I=(O,Y,q)=>{const H=O.contains.findIndex(V=>V.label===Y);if(H===-1)throw new Error("can not find mode to replace");O.contains.splice(H,1,q)};Object.assign(d.keywords,N),d.exports.PARAMS_CONTAINS.push(L);const R=d.contains.find(O=>O.scope==="attr"),U=Object.assign({},R,{match:r.concat(o,r.lookahead(/\s*\?:/))});d.exports.PARAMS_CONTAINS.push([d.exports.CLASS_REFERENCE,R,U]),d.contains=d.contains.concat([L,v,S,U]),I(d,"shebang",t.SHEBANG()),I(d,"use_strict",f);const X=d.contains.find(O=>O.label==="func.def");return X.relevance=0,Object.assign(d,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),d}function Ot(t){const r=t.regex,d=r.concat(/[\p{L}_]/u,r.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),o=/[\p{L}0-9._:-]+/u,_={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},v={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},S=t.inherit(v,{begin:/\(/,end:/\)/}),f=t.inherit(t.APOS_STRING_MODE,{className:"string"}),m=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),N={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:o,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[_]},{begin:/'/,end:/'/,contains:[_]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[v,m,f,S,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[v,S,m,f]}]}]},t.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},_,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[m]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[N],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[N],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:r.concat(/</,r.lookahead(r.concat(d,r.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:d,relevance:0,starts:N}]},{className:"tag",begin:r.concat(/<\//,r.lookahead(r.concat(d,/>/))),contains:[{className:"name",begin:d,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}de.registerLanguage("typescript",vt);de.registerLanguage("javascript",Tt);de.registerLanguage("css",_t);de.registerLanguage("json",xt);de.registerLanguage("markdown",wt);de.registerLanguage("xml",Ot);const Mt=new Map,kt=new Map,It=300,mn=(t,r,d)=>{const o=t.get(r);if(o!==void 0)return t.delete(r),t.set(r,o),o;const _=d();if(t.set(r,_),t.size>It){const v=t.keys().next().value;v&&t.delete(v)}return _},Ct=t=>{const r=t.toLowerCase();return r.endsWith(".ts")||r.endsWith(".tsx")||r.endsWith(".mts")||r.endsWith(".cts")?"typescript":r.endsWith(".js")||r.endsWith(".jsx")||r.endsWith(".mjs")||r.endsWith(".cjs")?"javascript":r.endsWith(".json")?"json":r.endsWith(".css")||r.endsWith(".scss")||r.endsWith(".less")?"css":r.endsWith(".html")||r.endsWith(".svg")||r.endsWith(".xml")?"xml":r.endsWith(".md")||r.endsWith(".mdx")?"markdown":null},He=t=>t.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;"),Lt=t=>mn(Mt,t,()=>{const r=t.split(/\r?\n/),d=[];let o=null,_=null;for(const S of r){const f=S.replace(/\r$/,""),m=f.trimStart(),N=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/.exec(m);if(m.startsWith("@@")){N&&(o=Number(N[1]),_=Number(N[2]));continue}if(!(f.startsWith("diff --git ")||f.startsWith("index ")||f.startsWith("--- ")||f.startsWith("+++ ")||f.startsWith("*** "))){if(f.startsWith("+")&&!f.startsWith("+++")){d.push({kind:"add",content:f.slice(1),oldLineNumber:null,newLineNumber:_,displayLineNumber:_}),_!==null&&(_+=1);continue}if(f.startsWith("-")&&!f.startsWith("---")){d.push({kind:"remove",content:f.slice(1),oldLineNumber:o,newLineNumber:null,displayLineNumber:o}),o!==null&&(o+=1);continue}d.push({kind:"context",content:f.startsWith(" ")?f.slice(1):f,oldLineNumber:o,newLineNumber:_,displayLineNumber:_??o}),o!==null&&(o+=1),_!==null&&(_+=1)}}if(!d.some(S=>(S.kind==="add"||S.kind==="remove"||S.kind==="context")&&S.displayLineNumber!==null)){let S=1;for(const f of d)(f.kind==="add"||f.kind==="remove"||f.kind==="context")&&(f.displayLineNumber=S,S+=1)}return d}),Dt=(t,r)=>mn(kt,`${r}\0${t}`,()=>{const d=Ct(r);if(!d||!t.trim())return He(t);try{return de.highlight(t,{language:d,ignoreIllegals:!0}).value}catch{return He(t)}}),on=t=>t.kind==="meta"||t.kind==="hunk",Pt=ke.memo(function({diffText:r,filePath:d,emptyMessage:o}){const _=ke.useMemo(()=>Lt(r),[r]),v=_.length>180||r.length>16e3,[S,f]=ke.useState(!v);return ke.useEffect(()=>{var I;if(!v){f(!0);return}f(!1);const m=window,N=(I=m.requestIdleCallback)==null?void 0:I.call(m,()=>{f(!0)},{timeout:220}),L=N===void 0?window.setTimeout(()=>{f(!0)},32):null;return()=>{var R;N!==void 0&&((R=m.cancelIdleCallback)==null||R.call(m,N)),L!==null&&window.clearTimeout(L)}},[r,v]),r.trim()?Ae.jsx("div",{className:"patch-diff",children:_.map((m,N)=>Ae.jsxs("div",{className:`patch-diff__line is-${m.kind} ${on(m)?"is-meta-block":""}`,children:[on(m)?null:Ae.jsx("span",{className:"patch-diff__number",children:m.displayLineNumber??""}),Ae.jsx("span",{className:"patch-diff__content",dangerouslySetInnerHTML:{__html:S?Dt(m.content||" ",d):He(m.content||" ")}})]},`${m.kind}-${N}-${m.oldLineNumber??"x"}-${m.newLineNumber??"y"}`))}):Ae.jsx("div",{className:"patch-file-card__empty",children:o})});export{Pt as SessionDiffPreview};
@@ -1 +1 @@
1
- import{W as p}from"./index-5NBpaOlM.js";class f extends p{constructor(){super(...arguments),this.group="CapacitorStorage"}async configure({group:e}){typeof e=="string"&&(this.group=e)}async get(e){return{value:this.impl.getItem(this.applyPrefix(e.key))}}async set(e){this.impl.setItem(this.applyPrefix(e.key),e.value)}async remove(e){this.impl.removeItem(this.applyPrefix(e.key))}async keys(){return{keys:this.rawKeys().map(t=>t.substring(this.prefix.length))}}async clear(){for(const e of this.rawKeys())this.impl.removeItem(e)}async migrate(){var e;const t=[],s=[],n="_cap_",o=Object.keys(this.impl).filter(i=>i.indexOf(n)===0);for(const i of o){const r=i.substring(n.length),a=(e=this.impl.getItem(i))!==null&&e!==void 0?e:"",{value:l}=await this.get({key:r});typeof l=="string"?s.push(r):(await this.set({key:r,value:a}),t.push(r))}return{migrated:t,existing:s}}async removeOld(){const e="_cap_",t=Object.keys(this.impl).filter(s=>s.indexOf(e)===0);for(const s of t)this.impl.removeItem(s)}get impl(){return window.localStorage}get prefix(){return this.group==="NativeStorage"?"":`${this.group}.`}rawKeys(){return Object.keys(this.impl).filter(e=>e.indexOf(this.prefix)===0)}applyPrefix(e){return this.prefix+e}}export{f as PreferencesWeb};
1
+ import{W as p}from"./index-DhjIbKkn.js";class f extends p{constructor(){super(...arguments),this.group="CapacitorStorage"}async configure({group:e}){typeof e=="string"&&(this.group=e)}async get(e){return{value:this.impl.getItem(this.applyPrefix(e.key))}}async set(e){this.impl.setItem(this.applyPrefix(e.key),e.value)}async remove(e){this.impl.removeItem(this.applyPrefix(e.key))}async keys(){return{keys:this.rawKeys().map(t=>t.substring(this.prefix.length))}}async clear(){for(const e of this.rawKeys())this.impl.removeItem(e)}async migrate(){var e;const t=[],s=[],n="_cap_",o=Object.keys(this.impl).filter(i=>i.indexOf(n)===0);for(const i of o){const r=i.substring(n.length),a=(e=this.impl.getItem(i))!==null&&e!==void 0?e:"",{value:l}=await this.get({key:r});typeof l=="string"?s.push(r):(await this.set({key:r,value:a}),t.push(r))}return{migrated:t,existing:s}}async removeOld(){const e="_cap_",t=Object.keys(this.impl).filter(s=>s.indexOf(e)===0);for(const s of t)this.impl.removeItem(s)}get impl(){return window.localStorage}get prefix(){return this.group==="NativeStorage"?"":`${this.group}.`}rawKeys(){return Object.keys(this.impl).filter(e=>e.indexOf(this.prefix)===0)}applyPrefix(e){return this.prefix+e}}export{f as PreferencesWeb};
@@ -1 +1 @@
1
- import{W as n,L as i,C as r,E as s,B as o}from"./index-5NBpaOlM.js";class d extends n{constructor(){super(...arguments),this._isSupported="BarcodeDetector"in window,this.errorVideoElementMissing="videoElement must be provided.",this.eventBarcodesScanned="barcodesScanned"}async startScan(e){if(!this._isSupported)throw this.createUnavailableException();if(!(e!=null&&e.videoElement))throw new Error(this.errorVideoElementMissing);this.videoElement=e.videoElement,this.stream=await navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:(e==null?void 0:e.lensFacing)===i.Front?"user":"environment"}},audio:!1}),e.videoElement.srcObject=this.stream,await e.videoElement.play();const t=new BarcodeDetector;this.intervalId=window.setInterval(async()=>{if(!e.videoElement)return;const a=await t.detect(e.videoElement);a.length!==0&&this.handleScannedBarcodes(a)},500)}async stopScan(){if(!this._isSupported)throw this.createUnavailableException();this.intervalId&&(clearInterval(this.intervalId),this.intervalId=void 0),this.stream&&(this.stream.getTracks().forEach(e=>e.stop()),this.stream=void 0),this.videoElement&&(this.videoElement.srcObject=null,this.videoElement=void 0)}async readBarcodesFromImage(e){throw this.createUnavailableException()}async scan(){throw this.createUnavailableException()}async isSupported(){return{supported:this._isSupported}}async enableTorch(){throw this.createUnavailableException()}async disableTorch(){throw this.createUnavailableException()}async toggleTorch(){throw this.createUnavailableException()}async isTorchEnabled(){throw this.createUnavailableException}async isTorchAvailable(){return{available:!1}}async setZoomRatio(e){throw this.createUnavailableException()}async getZoomRatio(){throw this.createUnavailableException()}async getMinZoomRatio(){throw this.createUnavailableException()}async getMaxZoomRatio(){throw this.createUnavailableException()}async openSettings(){throw this.createUnavailableException()}async isGoogleBarcodeScannerModuleAvailable(){throw this.createUnavailableException()}async installGoogleBarcodeScannerModule(){throw this.createUnavailableException()}async checkPermissions(){try{return{camera:(await navigator.permissions.query({name:"camera"})).state}}catch{return{camera:"prompt"}}}async requestPermissions(){try{return(await navigator.mediaDevices.getUserMedia({video:!0})).getTracks().forEach(t=>t.stop()),{camera:"granted"}}catch{return{camera:"denied"}}}createUnavailableException(){return new r("This plugin method is not available on this platform.",s.Unavailable)}handleScannedBarcodes(e){const t={barcodes:e.map(a=>({cornerPoints:[[a.cornerPoints[0].x,a.cornerPoints[0].y],[a.cornerPoints[1].x,a.cornerPoints[1].y],[a.cornerPoints[2].x,a.cornerPoints[2].y],[a.cornerPoints[3].x,a.cornerPoints[3].y]],displayValue:a.rawValue,rawValue:a.rawValue,format:a.format.toUpperCase(),valueType:o.Unknown}))};this.notifyListeners(this.eventBarcodesScanned,t)}}export{d as BarcodeScannerWeb};
1
+ import{W as n,L as i,C as r,E as s,B as o}from"./index-DhjIbKkn.js";class d extends n{constructor(){super(...arguments),this._isSupported="BarcodeDetector"in window,this.errorVideoElementMissing="videoElement must be provided.",this.eventBarcodesScanned="barcodesScanned"}async startScan(e){if(!this._isSupported)throw this.createUnavailableException();if(!(e!=null&&e.videoElement))throw new Error(this.errorVideoElementMissing);this.videoElement=e.videoElement,this.stream=await navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:(e==null?void 0:e.lensFacing)===i.Front?"user":"environment"}},audio:!1}),e.videoElement.srcObject=this.stream,await e.videoElement.play();const t=new BarcodeDetector;this.intervalId=window.setInterval(async()=>{if(!e.videoElement)return;const a=await t.detect(e.videoElement);a.length!==0&&this.handleScannedBarcodes(a)},500)}async stopScan(){if(!this._isSupported)throw this.createUnavailableException();this.intervalId&&(clearInterval(this.intervalId),this.intervalId=void 0),this.stream&&(this.stream.getTracks().forEach(e=>e.stop()),this.stream=void 0),this.videoElement&&(this.videoElement.srcObject=null,this.videoElement=void 0)}async readBarcodesFromImage(e){throw this.createUnavailableException()}async scan(){throw this.createUnavailableException()}async isSupported(){return{supported:this._isSupported}}async enableTorch(){throw this.createUnavailableException()}async disableTorch(){throw this.createUnavailableException()}async toggleTorch(){throw this.createUnavailableException()}async isTorchEnabled(){throw this.createUnavailableException}async isTorchAvailable(){return{available:!1}}async setZoomRatio(e){throw this.createUnavailableException()}async getZoomRatio(){throw this.createUnavailableException()}async getMinZoomRatio(){throw this.createUnavailableException()}async getMaxZoomRatio(){throw this.createUnavailableException()}async openSettings(){throw this.createUnavailableException()}async isGoogleBarcodeScannerModuleAvailable(){throw this.createUnavailableException()}async installGoogleBarcodeScannerModule(){throw this.createUnavailableException()}async checkPermissions(){try{return{camera:(await navigator.permissions.query({name:"camera"})).state}}catch{return{camera:"prompt"}}}async requestPermissions(){try{return(await navigator.mediaDevices.getUserMedia({video:!0})).getTracks().forEach(t=>t.stop()),{camera:"granted"}}catch{return{camera:"denied"}}}createUnavailableException(){return new r("This plugin method is not available on this platform.",s.Unavailable)}handleScannedBarcodes(e){const t={barcodes:e.map(a=>({cornerPoints:[[a.cornerPoints[0].x,a.cornerPoints[0].y],[a.cornerPoints[1].x,a.cornerPoints[1].y],[a.cornerPoints[2].x,a.cornerPoints[2].y],[a.cornerPoints[3].x,a.cornerPoints[3].y]],displayValue:a.rawValue,rawValue:a.rawValue,format:a.format.toUpperCase(),valueType:o.Unknown}))};this.notifyListeners(this.eventBarcodesScanned,t)}}export{d as BarcodeScannerWeb};
@@ -1 +1 @@
1
- import{W as s}from"./index-5NBpaOlM.js";class c extends s{constructor(){super(...arguments),this.pending=[],this.deliveredNotifications=[],this.hasNotificationSupport=()=>{if(!("Notification"in window)||!Notification.requestPermission)return!1;if(Notification.permission!=="granted")try{new Notification("")}catch(i){if(i.name=="TypeError")return!1}return!0}}async getDeliveredNotifications(){const i=[];for(const t of this.deliveredNotifications){const e={title:t.title,id:parseInt(t.tag),body:t.body};i.push(e)}return{notifications:i}}async removeDeliveredNotifications(i){for(const t of i.notifications){const e=this.deliveredNotifications.find(n=>n.tag===String(t.id));e==null||e.close(),this.deliveredNotifications=this.deliveredNotifications.filter(()=>!e)}}async removeAllDeliveredNotifications(){for(const i of this.deliveredNotifications)i.close();this.deliveredNotifications=[]}async createChannel(){throw this.unimplemented("Not implemented on web.")}async deleteChannel(){throw this.unimplemented("Not implemented on web.")}async listChannels(){throw this.unimplemented("Not implemented on web.")}async schedule(i){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");for(const t of i.notifications)this.sendNotification(t);return{notifications:i.notifications.map(t=>({id:t.id}))}}async getPending(){return{notifications:this.pending}}async registerActionTypes(){throw this.unimplemented("Not implemented on web.")}async cancel(i){this.pending=this.pending.filter(t=>!i.notifications.find(e=>e.id===t.id))}async areEnabled(){const{display:i}=await this.checkPermissions();return{value:i==="granted"}}async changeExactNotificationSetting(){throw this.unimplemented("Not implemented on web.")}async checkExactNotificationSetting(){throw this.unimplemented("Not implemented on web.")}async requestPermissions(){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");return{display:this.transformNotificationPermission(await Notification.requestPermission())}}async checkPermissions(){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");return{display:this.transformNotificationPermission(Notification.permission)}}transformNotificationPermission(i){switch(i){case"granted":return"granted";case"denied":return"denied";default:return"prompt"}}sendPending(){var i;const t=[],e=new Date().getTime();for(const n of this.pending)!((i=n.schedule)===null||i===void 0)&&i.at&&n.schedule.at.getTime()<=e&&(this.buildNotification(n),t.push(n));this.pending=this.pending.filter(n=>!t.find(o=>o===n))}sendNotification(i){var t;if(!((t=i.schedule)===null||t===void 0)&&t.at){const e=i.schedule.at.getTime()-new Date().getTime();this.pending.push(i),setTimeout(()=>{this.sendPending()},e);return}this.buildNotification(i)}buildNotification(i){const t=new Notification(i.title,{body:i.body,tag:String(i.id)});return t.addEventListener("click",this.onClick.bind(this,i),!1),t.addEventListener("show",this.onShow.bind(this,i),!1),t.addEventListener("close",()=>{this.deliveredNotifications=this.deliveredNotifications.filter(()=>!this)},!1),this.deliveredNotifications.push(t),t}onClick(i){const t={actionId:"tap",notification:i};this.notifyListeners("localNotificationActionPerformed",t)}onShow(i){this.notifyListeners("localNotificationReceived",i)}}export{c as LocalNotificationsWeb};
1
+ import{W as s}from"./index-DhjIbKkn.js";class c extends s{constructor(){super(...arguments),this.pending=[],this.deliveredNotifications=[],this.hasNotificationSupport=()=>{if(!("Notification"in window)||!Notification.requestPermission)return!1;if(Notification.permission!=="granted")try{new Notification("")}catch(i){if(i.name=="TypeError")return!1}return!0}}async getDeliveredNotifications(){const i=[];for(const t of this.deliveredNotifications){const e={title:t.title,id:parseInt(t.tag),body:t.body};i.push(e)}return{notifications:i}}async removeDeliveredNotifications(i){for(const t of i.notifications){const e=this.deliveredNotifications.find(n=>n.tag===String(t.id));e==null||e.close(),this.deliveredNotifications=this.deliveredNotifications.filter(()=>!e)}}async removeAllDeliveredNotifications(){for(const i of this.deliveredNotifications)i.close();this.deliveredNotifications=[]}async createChannel(){throw this.unimplemented("Not implemented on web.")}async deleteChannel(){throw this.unimplemented("Not implemented on web.")}async listChannels(){throw this.unimplemented("Not implemented on web.")}async schedule(i){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");for(const t of i.notifications)this.sendNotification(t);return{notifications:i.notifications.map(t=>({id:t.id}))}}async getPending(){return{notifications:this.pending}}async registerActionTypes(){throw this.unimplemented("Not implemented on web.")}async cancel(i){this.pending=this.pending.filter(t=>!i.notifications.find(e=>e.id===t.id))}async areEnabled(){const{display:i}=await this.checkPermissions();return{value:i==="granted"}}async changeExactNotificationSetting(){throw this.unimplemented("Not implemented on web.")}async checkExactNotificationSetting(){throw this.unimplemented("Not implemented on web.")}async requestPermissions(){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");return{display:this.transformNotificationPermission(await Notification.requestPermission())}}async checkPermissions(){if(!this.hasNotificationSupport())throw this.unavailable("Notifications not supported in this browser.");return{display:this.transformNotificationPermission(Notification.permission)}}transformNotificationPermission(i){switch(i){case"granted":return"granted";case"denied":return"denied";default:return"prompt"}}sendPending(){var i;const t=[],e=new Date().getTime();for(const n of this.pending)!((i=n.schedule)===null||i===void 0)&&i.at&&n.schedule.at.getTime()<=e&&(this.buildNotification(n),t.push(n));this.pending=this.pending.filter(n=>!t.find(o=>o===n))}sendNotification(i){var t;if(!((t=i.schedule)===null||t===void 0)&&t.at){const e=i.schedule.at.getTime()-new Date().getTime();this.pending.push(i),setTimeout(()=>{this.sendPending()},e);return}this.buildNotification(i)}buildNotification(i){const t=new Notification(i.title,{body:i.body,tag:String(i.id)});return t.addEventListener("click",this.onClick.bind(this,i),!1),t.addEventListener("show",this.onShow.bind(this,i),!1),t.addEventListener("close",()=>{this.deliveredNotifications=this.deliveredNotifications.filter(()=>!this)},!1),this.deliveredNotifications.push(t),t}onClick(i){const t={actionId:"tap",notification:i};this.notifyListeners("localNotificationActionPerformed",t)}onShow(i){this.notifyListeners("localNotificationReceived",i)}}export{c as LocalNotificationsWeb};
@@ -1 +1 @@
1
- import{W as o}from"./index-5NBpaOlM.js";class e extends o{constructor(){super(),this._lastWindow=null}async open(s){this._lastWindow=window.open(s.url,s.windowName||"_blank")}async close(){return new Promise((s,n)=>{this._lastWindow!=null?(this._lastWindow.close(),this._lastWindow=null,s()):n("No active window to close!")})}}const i=new e;export{i as Browser,e as BrowserWeb};
1
+ import{W as o}from"./index-DhjIbKkn.js";class e extends o{constructor(){super(),this._lastWindow=null}async open(s){this._lastWindow=window.open(s.url,s.windowName||"_blank")}async close(){return new Promise((s,n)=>{this._lastWindow!=null?(this._lastWindow.close(),this._lastWindow=null,s()):n("No active window to close!")})}}const i=new e;export{i as Browser,e as BrowserWeb};
@@ -1 +1 @@
1
- import{W as t}from"./index-5NBpaOlM.js";class s extends t{constructor(){super(),this.handleVisibilityChange=()=>{const e={isActive:document.hidden!==!0};this.notifyListeners("appStateChange",e),document.hidden?this.notifyListeners("pause",null):this.notifyListeners("resume",null)},document.addEventListener("visibilitychange",this.handleVisibilityChange,!1)}exitApp(){throw this.unimplemented("Not implemented on web.")}async getInfo(){throw this.unimplemented("Not implemented on web.")}async getLaunchUrl(){return{url:""}}async getState(){return{isActive:document.hidden!==!0}}async minimizeApp(){throw this.unimplemented("Not implemented on web.")}async toggleBackButtonHandler(){throw this.unimplemented("Not implemented on web.")}}export{s as AppWeb};
1
+ import{W as t}from"./index-DhjIbKkn.js";class s extends t{constructor(){super(),this.handleVisibilityChange=()=>{const e={isActive:document.hidden!==!0};this.notifyListeners("appStateChange",e),document.hidden?this.notifyListeners("pause",null):this.notifyListeners("resume",null)},document.addEventListener("visibilitychange",this.handleVisibilityChange,!1)}exitApp(){throw this.unimplemented("Not implemented on web.")}async getInfo(){throw this.unimplemented("Not implemented on web.")}async getLaunchUrl(){return{url:""}}async getState(){return{isActive:document.hidden!==!0}}async minimizeApp(){throw this.unimplemented("Not implemented on web.")}async toggleBackButtonHandler(){throw this.unimplemented("Not implemented on web.")}}export{s as AppWeb};
@@ -14,8 +14,8 @@
14
14
  <link rel="alternate icon" type="image/png" href="/logo.png" />
15
15
  <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
16
16
  <title>Panda</title>
17
- <script type="module" crossorigin src="/assets/index-5NBpaOlM.js"></script>
18
- <link rel="stylesheet" crossorigin href="/assets/index-CtgLzUhf.css">
17
+ <script type="module" crossorigin src="/assets/index-DhjIbKkn.js"></script>
18
+ <link rel="stylesheet" crossorigin href="/assets/index-QBVYFqgo.css">
19
19
  <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
20
20
  <body>
21
21
  <div id="root"></div>
package/dist/web/sw.js CHANGED
@@ -1,2 +1,2 @@
1
1
  try{self["workbox:core:7.3.0"]&&_()}catch{}const T=(a,...e)=>{let t=a;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},N=T;class l extends Error{constructor(e,t){const s=N(e,t);super(s),this.name=e,this.details=t}}const f={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:typeof registration<"u"?registration.scope:""},b=a=>[f.prefix,a,f.suffix].filter(e=>e&&e.length>0).join("-"),x=a=>{for(const e of Object.keys(f))a(e)},C={updateDetails:a=>{x(e=>{typeof a[e]=="string"&&(f[e]=a[e])})},getGoogleAnalyticsName:a=>a||b(f.googleAnalytics),getPrecacheName:a=>a||b(f.precache),getPrefix:()=>f.prefix,getRuntimeName:a=>a||b(f.runtime),getSuffix:()=>f.suffix};function k(a,e){const t=e();return a.waitUntil(t),t}try{self["workbox:precaching:7.3.0"]&&_()}catch{}const I="__WB_REVISION__";function E(a){if(!a)throw new l("add-to-cache-list-unexpected-type",{entry:a});if(typeof a=="string"){const i=new URL(a,location.href);return{cacheKey:i.href,url:i.href}}const{revision:e,url:t}=a;if(!t)throw new l("add-to-cache-list-unexpected-type",{entry:a});if(!e){const i=new URL(t,location.href);return{cacheKey:i.href,url:i.href}}const s=new URL(t,location.href),n=new URL(t,location.href);return s.searchParams.set(I,e),{cacheKey:s.href,url:n.href}}class O{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:s})=>{if(e.type==="install"&&t&&t.originalRequest&&t.originalRequest instanceof Request){const n=t.originalRequest.url;s?this.notUpdatedURLs.push(n):this.updatedURLs.push(n)}return s}}}class M{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:t,params:s})=>{const n=(s==null?void 0:s.cacheKey)||this._precacheController.getCacheKeyForURL(t.url);return n?new Request(n,{headers:t.headers}):t},this._precacheController=e}}let p;function S(){if(p===void 0){const a=new Response("");if("body"in a)try{new Response(a.body),p=!0}catch{p=!1}p=!1}return p}async function W(a,e){let t=null;if(a.url&&(t=new URL(a.url).origin),t!==self.location.origin)throw new l("cross-origin-copy-response",{origin:t});const s=a.clone(),i={headers:new Headers(s.headers),status:s.status,statusText:s.statusText},r=S()?s.body:await s.blob();return new Response(r,i)}const A=a=>new URL(String(a),location.href).href.replace(new RegExp(`^${location.origin}`),"");function P(a,e){const t=new URL(a);for(const s of e)t.searchParams.delete(s);return t.href}async function D(a,e,t,s){const n=P(e.url,t);if(e.url===n)return a.match(e,s);const i=Object.assign(Object.assign({},s),{ignoreSearch:!0}),r=await a.keys(e,i);for(const c of r){const o=P(c.url,t);if(n===o)return a.match(c,s)}}class q{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}const j=new Set;async function F(){for(const a of j)await a()}function H(a){return new Promise(e=>setTimeout(e,a))}try{self["workbox:strategies:7.3.0"]&&_()}catch{}function m(a){return typeof a=="string"?new Request(a):a}class B{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new q,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const s of this._plugins)this._pluginStateMap.set(s,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let s=m(e);if(s.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const r=await t.preloadResponse;if(r)return r}const n=this.hasCallback("fetchDidFail")?s.clone():null;try{for(const r of this.iterateCallbacks("requestWillFetch"))s=await r({request:s.clone(),event:t})}catch(r){if(r instanceof Error)throw new l("plugin-error-request-will-fetch",{thrownErrorMessage:r.message})}const i=s.clone();try{let r;r=await fetch(s,s.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const c of this.iterateCallbacks("fetchDidSucceed"))r=await c({event:t,request:i,response:r});return r}catch(r){throw n&&await this.runCallbacks("fetchDidFail",{error:r,event:t,originalRequest:n.clone(),request:i.clone()}),r}}async fetchAndCachePut(e){const t=await this.fetch(e),s=t.clone();return this.waitUntil(this.cachePut(e,s)),t}async cacheMatch(e){const t=m(e);let s;const{cacheName:n,matchOptions:i}=this._strategy,r=await this.getCacheKey(t,"read"),c=Object.assign(Object.assign({},i),{cacheName:n});s=await caches.match(r,c);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await o({cacheName:n,matchOptions:i,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(e,t){const s=m(e);await H(0);const n=await this.getCacheKey(s,"write");if(!t)throw new l("cache-put-with-no-response",{url:A(n.url)});const i=await this._ensureResponseSafeToCache(t);if(!i)return!1;const{cacheName:r,matchOptions:c}=this._strategy,o=await self.caches.open(r),h=this.hasCallback("cacheDidUpdate"),g=h?await D(o,n.clone(),["__WB_REVISION__"],c):null;try{await o.put(n,h?i.clone():i)}catch(u){if(u instanceof Error)throw u.name==="QuotaExceededError"&&await F(),u}for(const u of this.iterateCallbacks("cacheDidUpdate"))await u({cacheName:r,oldResponse:g,newResponse:i.clone(),request:n,event:this.event});return!0}async getCacheKey(e,t){const s=`${e.url} | ${t}`;if(!this._cacheKeys[s]){let n=e;for(const i of this.iterateCallbacks("cacheKeyWillBeUsed"))n=m(await i({mode:t,request:n,event:this.event,params:this.params}));this._cacheKeys[s]=n}return this._cacheKeys[s]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const s of this.iterateCallbacks(e))await s(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const s=this._pluginStateMap.get(t);yield i=>{const r=Object.assign(Object.assign({},i),{state:s});return t[e](r)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){const e=this._extendLifetimePromises.splice(0),s=(await Promise.allSettled(e)).find(n=>n.status==="rejected");if(s)throw s.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,s=!1;for(const n of this.iterateCallbacks("cacheWillUpdate"))if(t=await n({request:this.request,response:t,event:this.event})||void 0,s=!0,!t)break;return s||t&&t.status!==200&&(t=void 0),t}}class V{constructor(e={}){this.cacheName=C.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,s=typeof e.request=="string"?new Request(e.request):e.request,n="params"in e?e.params:void 0,i=new B(this,{event:t,request:s,params:n}),r=this._getResponse(i,s,t),c=this._awaitComplete(r,i,s,t);return[r,c]}async _getResponse(e,t,s){await e.runCallbacks("handlerWillStart",{event:s,request:t});let n;try{if(n=await this._handle(t,e),!n||n.type==="error")throw new l("no-response",{url:t.url})}catch(i){if(i instanceof Error){for(const r of e.iterateCallbacks("handlerDidError"))if(n=await r({error:i,event:s,request:t}),n)break}if(!n)throw i}for(const i of e.iterateCallbacks("handlerWillRespond"))n=await i({event:s,request:t,response:n});return n}async _awaitComplete(e,t,s,n){let i,r;try{i=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:n,request:s,response:i}),await t.doneWaiting()}catch(c){c instanceof Error&&(r=c)}if(await t.runCallbacks("handlerDidComplete",{event:n,request:s,response:i,error:r}),t.destroy(),r)throw r}}class d extends V{constructor(e={}){e.cacheName=C.getPrecacheName(e.cacheName),super(e),this._fallbackToNetwork=e.fallbackToNetwork!==!1,this.plugins.push(d.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){const s=await t.cacheMatch(e);return s||(t.event&&t.event.type==="install"?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let s;const n=t.params||{};if(this._fallbackToNetwork){const i=n.integrity,r=e.integrity,c=!r||r===i;s=await t.fetch(new Request(e,{integrity:e.mode!=="no-cors"?r||i:void 0})),i&&c&&e.mode!=="no-cors"&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,s.clone()))}else throw new l("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return s}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();const s=await t.fetch(e);if(!await t.cachePut(e,s.clone()))throw new l("bad-precaching-response",{url:e.url,status:s.status});return s}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[s,n]of this.plugins.entries())n!==d.copyRedirectedCacheableResponsesPlugin&&(n===d.defaultPrecacheCacheabilityPlugin&&(e=s),n.cacheWillUpdate&&t++);t===0?this.plugins.push(d.defaultPrecacheCacheabilityPlugin):t>1&&e!==null&&this.plugins.splice(e,1)}}d.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:a}){return!a||a.status>=400?null:a}};d.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:a}){return a.redirected?await W(a):a}};class ${constructor({cacheName:e,plugins:t=[],fallbackToNetwork:s=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new d({cacheName:C.getPrecacheName(e),plugins:[...t,new M({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){const t=[];for(const s of e){typeof s=="string"?t.push(s):s&&s.revision===void 0&&t.push(s.url);const{cacheKey:n,url:i}=E(s),r=typeof s!="string"&&s.revision?"reload":"default";if(this._urlsToCacheKeys.has(i)&&this._urlsToCacheKeys.get(i)!==n)throw new l("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(i),secondEntry:n});if(typeof s!="string"&&s.integrity){if(this._cacheKeysToIntegrities.has(n)&&this._cacheKeysToIntegrities.get(n)!==s.integrity)throw new l("add-to-cache-list-conflicting-integrities",{url:i});this._cacheKeysToIntegrities.set(n,s.integrity)}if(this._urlsToCacheKeys.set(i,n),this._urlsToCacheModes.set(i,r),t.length>0){const c=`Workbox is precaching URLs without revision info: ${t.join(", ")}
2
- This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(c)}}}install(e){return k(e,async()=>{const t=new O;this.strategy.plugins.push(t);for(const[i,r]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(r),o=this._urlsToCacheModes.get(i),h=new Request(i,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:r},request:h,event:e}))}const{updatedURLs:s,notUpdatedURLs:n}=t;return{updatedURLs:s,notUpdatedURLs:n}})}activate(e){return k(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),s=await t.keys(),n=new Set(this._urlsToCacheKeys.values()),i=[];for(const r of s)n.has(r.url)||(await t.delete(r),i.push(r.url));return{deletedURLs:i}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,s=this.getCacheKeyForURL(t);if(s)return(await self.caches.open(this.strategy.cacheName)).match(s)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new l("non-precached-url",{url:e});return s=>(s.request=new Request(e),s.params=Object.assign({cacheKey:t},s.params),this.strategy.handle(s))}}let U;const K=()=>(U||(U=new $),U);try{self["workbox:routing:7.3.0"]&&_()}catch{}const v="GET",R=a=>a&&typeof a=="object"?a:{handle:a};class w{constructor(e,t,s=v){this.handler=R(t),this.match=e,this.method=s}setCatchHandler(e){this.catchHandler=R(e)}}class G extends w{constructor(e,t,s){const n=({url:i})=>{const r=e.exec(i.href);if(r&&!(i.origin!==location.origin&&r.index!==0))return r.slice(1)};super(n,t,s)}}class z{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",(e=>{const{request:t}=e,s=this.handleRequest({request:t,event:e});s&&e.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,s=Promise.all(t.urlsToCache.map(n=>{typeof n=="string"&&(n=[n]);const i=new Request(...n);return this.handleRequest({request:i,event:e})}));e.waitUntil(s),e.ports&&e.ports[0]&&s.then(()=>e.ports[0].postMessage(!0))}}))}handleRequest({request:e,event:t}){const s=new URL(e.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:t,request:e,sameOrigin:n,url:s});let c=r&&r.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let h;try{h=c.handle({url:s,request:e,event:t,params:i})}catch(u){h=Promise.reject(u)}const g=r&&r.catchHandler;return h instanceof Promise&&(this._catchHandler||g)&&(h=h.catch(async u=>{if(g)try{return await g.handle({url:s,request:e,event:t,params:i})}catch(L){L instanceof Error&&(u=L)}if(this._catchHandler)return this._catchHandler.handle({url:s,request:e,event:t});throw u})),h}findMatchingRoute({url:e,sameOrigin:t,request:s,event:n}){const i=this._routes.get(s.method)||[];for(const r of i){let c;const o=r.match({url:e,sameOrigin:t,request:s,event:n});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:r,params:c}}return{}}setDefaultHandler(e,t=v){this._defaultHandlerMap.set(t,R(e))}setCatchHandler(e){this._catchHandler=R(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new l("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new l("unregister-route-route-not-registered")}}let y;const Q=()=>(y||(y=new z,y.addFetchListener(),y.addCacheListener()),y);function J(a,e,t){let s;if(typeof a=="string"){const i=new URL(a,location.href),r=({url:c})=>c.href===i.href;s=new w(r,e,t)}else if(a instanceof RegExp)s=new G(a,e,t);else if(typeof a=="function")s=new w(a,e,t);else if(a instanceof w)s=a;else throw new l("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Q().registerRoute(s),s}function X(a,e=[]){for(const t of[...a.searchParams.keys()])e.some(s=>s.test(t))&&a.searchParams.delete(t);return a}function*Y(a,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:s=!0,urlManipulation:n}={}){const i=new URL(a,location.href);i.hash="",yield i.href;const r=X(i,e);if(yield r.href,t&&r.pathname.endsWith("/")){const c=new URL(r.href);c.pathname+=t,yield c.href}if(s){const c=new URL(r.href);c.pathname+=".html",yield c.href}if(n){const c=n({url:i});for(const o of c)yield o.href}}class Z extends w{constructor(e,t){const s=({request:n})=>{const i=e.getURLsToCacheKeys();for(const r of Y(n.url,t)){const c=i.get(r);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(s,e.strategy)}}function ee(a){const e=K(),t=new Z(e,a);J(t)}const te="-precache-",se=async(a,e=te)=>{const s=(await self.caches.keys()).filter(n=>n.includes(e)&&n.includes(self.registration.scope)&&n!==a);return await Promise.all(s.map(n=>self.caches.delete(n))),s};function ae(){self.addEventListener("activate",(a=>{const e=C.getPrecacheName();a.waitUntil(se(e).then(t=>{}))}))}function ne(a){K().precache(a)}function ie(a,e){ne(a),ee(e)}ae();ie([{"revision":"1872c500de691dce40960bb85481de07","url":"registerSW.js"},{"revision":"f1750a4fdab679340d9a0ad951fd3960","url":"index.html"},{"revision":null,"url":"assets/web-P7eDOfOq.js"},{"revision":null,"url":"assets/web-DCi2I8TJ.js"},{"revision":null,"url":"assets/web-C7Ef9J6I.js"},{"revision":null,"url":"assets/web-BGzSBKmu.js"},{"revision":null,"url":"assets/web-BFlqriRI.js"},{"revision":null,"url":"assets/session-diff-preview-Dy910n6F.js"},{"revision":null,"url":"assets/index-CtgLzUhf.css"},{"revision":null,"url":"assets/index-5NBpaOlM.js"},{"revision":null,"url":"assets/diagnostics-page-CNt0HQLr.js"},{"revision":null,"url":"assets/diagnostics-page-BmzeM8p1.css"},{"revision":"ce252fc684ae118a6f6cf9071809dffd","url":"apple-touch-icon.png"},{"revision":"b02f1b7803c9c7268e57c7d436517197","url":"icon.svg"},{"revision":"cf3a5edad6232ed8aa50814fb89c0554","url":"logo.png"},{"revision":"20d3c302662bcb19dbf6c59f1c7abf11","url":"maskable-512.png"},{"revision":"6f02e0dde6896109b490eccd706d82d6","url":"pwa-192.png"},{"revision":"5aeed9a5f97bb102f2c7f0348ac6bdf0","url":"pwa-512.png"},{"revision":"278e8c999f9f15c3726b6bac8a40c6c5","url":"small-icon.svg"},{"revision":"d7dcc96e69efd9ecf21ccd70313cee7b","url":"manifest.webmanifest"}]);self.addEventListener("message",a=>{var e;((e=a.data)==null?void 0:e.type)==="SKIP_WAITING"&&self.skipWaiting()});self.addEventListener("push",a=>{const e=(()=>{var s;try{return((s=a.data)==null?void 0:s.json())??{}}catch{return{}}})(),t=(()=>{try{return new URL(e.url??"/",self.location.origin).toString()}catch{return self.location.origin}})();a.waitUntil((async()=>{(await self.clients.matchAll({type:"window",includeUncontrolled:!0})).some(i=>"visibilityState"in i&&i.visibilityState==="visible"?i.url===t:!1)||await self.registration.showNotification(e.title??"Panda",{body:e.body??"点开查看最新会话进展。",tag:e.tag??"panda-web-push",icon:"/pwa-512.png",badge:"/pwa-192.png",data:{url:t,sessionId:e.sessionId??null}})})())});self.addEventListener("notificationclick",a=>{var t;const e=typeof((t=a.notification.data)==null?void 0:t.url)=="string"?a.notification.data.url:self.location.origin;a.notification.close(),a.waitUntil((async()=>{const s=await self.clients.matchAll({type:"window",includeUncontrolled:!0});for(const n of s)if("focus"in n){if(n.url===e){await n.focus();return}if("navigate"in n){await n.navigate(e),await n.focus();return}}await self.clients.openWindow(e)})())});
2
+ This is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(c)}}}install(e){return k(e,async()=>{const t=new O;this.strategy.plugins.push(t);for(const[i,r]of this._urlsToCacheKeys){const c=this._cacheKeysToIntegrities.get(r),o=this._urlsToCacheModes.get(i),h=new Request(i,{integrity:c,cache:o,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:r},request:h,event:e}))}const{updatedURLs:s,notUpdatedURLs:n}=t;return{updatedURLs:s,notUpdatedURLs:n}})}activate(e){return k(e,async()=>{const t=await self.caches.open(this.strategy.cacheName),s=await t.keys(),n=new Set(this._urlsToCacheKeys.values()),i=[];for(const r of s)n.has(r.url)||(await t.delete(r),i.push(r.url));return{deletedURLs:i}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,s=this.getCacheKeyForURL(t);if(s)return(await self.caches.open(this.strategy.cacheName)).match(s)}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new l("non-precached-url",{url:e});return s=>(s.request=new Request(e),s.params=Object.assign({cacheKey:t},s.params),this.strategy.handle(s))}}let U;const K=()=>(U||(U=new $),U);try{self["workbox:routing:7.3.0"]&&_()}catch{}const v="GET",R=a=>a&&typeof a=="object"?a:{handle:a};class w{constructor(e,t,s=v){this.handler=R(t),this.match=e,this.method=s}setCatchHandler(e){this.catchHandler=R(e)}}class G extends w{constructor(e,t,s){const n=({url:i})=>{const r=e.exec(i.href);if(r&&!(i.origin!==location.origin&&r.index!==0))return r.slice(1)};super(n,t,s)}}class z{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",(e=>{const{request:t}=e,s=this.handleRequest({request:t,event:e});s&&e.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,s=Promise.all(t.urlsToCache.map(n=>{typeof n=="string"&&(n=[n]);const i=new Request(...n);return this.handleRequest({request:i,event:e})}));e.waitUntil(s),e.ports&&e.ports[0]&&s.then(()=>e.ports[0].postMessage(!0))}}))}handleRequest({request:e,event:t}){const s=new URL(e.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:t,request:e,sameOrigin:n,url:s});let c=r&&r.handler;const o=e.method;if(!c&&this._defaultHandlerMap.has(o)&&(c=this._defaultHandlerMap.get(o)),!c)return;let h;try{h=c.handle({url:s,request:e,event:t,params:i})}catch(u){h=Promise.reject(u)}const g=r&&r.catchHandler;return h instanceof Promise&&(this._catchHandler||g)&&(h=h.catch(async u=>{if(g)try{return await g.handle({url:s,request:e,event:t,params:i})}catch(L){L instanceof Error&&(u=L)}if(this._catchHandler)return this._catchHandler.handle({url:s,request:e,event:t});throw u})),h}findMatchingRoute({url:e,sameOrigin:t,request:s,event:n}){const i=this._routes.get(s.method)||[];for(const r of i){let c;const o=r.match({url:e,sameOrigin:t,request:s,event:n});if(o)return c=o,(Array.isArray(c)&&c.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o=="boolean")&&(c=void 0),{route:r,params:c}}return{}}setDefaultHandler(e,t=v){this._defaultHandlerMap.set(t,R(e))}setCatchHandler(e){this._catchHandler=R(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new l("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new l("unregister-route-route-not-registered")}}let y;const Q=()=>(y||(y=new z,y.addFetchListener(),y.addCacheListener()),y);function J(a,e,t){let s;if(typeof a=="string"){const i=new URL(a,location.href),r=({url:c})=>c.href===i.href;s=new w(r,e,t)}else if(a instanceof RegExp)s=new G(a,e,t);else if(typeof a=="function")s=new w(a,e,t);else if(a instanceof w)s=a;else throw new l("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Q().registerRoute(s),s}function X(a,e=[]){for(const t of[...a.searchParams.keys()])e.some(s=>s.test(t))&&a.searchParams.delete(t);return a}function*Y(a,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:t="index.html",cleanURLs:s=!0,urlManipulation:n}={}){const i=new URL(a,location.href);i.hash="",yield i.href;const r=X(i,e);if(yield r.href,t&&r.pathname.endsWith("/")){const c=new URL(r.href);c.pathname+=t,yield c.href}if(s){const c=new URL(r.href);c.pathname+=".html",yield c.href}if(n){const c=n({url:i});for(const o of c)yield o.href}}class Z extends w{constructor(e,t){const s=({request:n})=>{const i=e.getURLsToCacheKeys();for(const r of Y(n.url,t)){const c=i.get(r);if(c){const o=e.getIntegrityForCacheKey(c);return{cacheKey:c,integrity:o}}}};super(s,e.strategy)}}function ee(a){const e=K(),t=new Z(e,a);J(t)}const te="-precache-",se=async(a,e=te)=>{const s=(await self.caches.keys()).filter(n=>n.includes(e)&&n.includes(self.registration.scope)&&n!==a);return await Promise.all(s.map(n=>self.caches.delete(n))),s};function ae(){self.addEventListener("activate",(a=>{const e=C.getPrecacheName();a.waitUntil(se(e).then(t=>{}))}))}function ne(a){K().precache(a)}function ie(a,e){ne(a),ee(e)}ae();ie([{"revision":"1872c500de691dce40960bb85481de07","url":"registerSW.js"},{"revision":"ac3ba0149e6cf453f2ec4cf525c43ace","url":"index.html"},{"revision":null,"url":"assets/web-HzS7kaoe.js"},{"revision":null,"url":"assets/web-Ck4th-0Z.js"},{"revision":null,"url":"assets/web-CIHpZyzh.js"},{"revision":null,"url":"assets/web-C3EZUi0V.js"},{"revision":null,"url":"assets/web-BqX5x67V.js"},{"revision":null,"url":"assets/session-diff-preview-BU4XO0fT.js"},{"revision":null,"url":"assets/index-QBVYFqgo.css"},{"revision":null,"url":"assets/index-DhjIbKkn.js"},{"revision":null,"url":"assets/diagnostics-page-BmzeM8p1.css"},{"revision":null,"url":"assets/diagnostics-page-BKp7IiZk.js"},{"revision":"ce252fc684ae118a6f6cf9071809dffd","url":"apple-touch-icon.png"},{"revision":"b02f1b7803c9c7268e57c7d436517197","url":"icon.svg"},{"revision":"cf3a5edad6232ed8aa50814fb89c0554","url":"logo.png"},{"revision":"20d3c302662bcb19dbf6c59f1c7abf11","url":"maskable-512.png"},{"revision":"6f02e0dde6896109b490eccd706d82d6","url":"pwa-192.png"},{"revision":"5aeed9a5f97bb102f2c7f0348ac6bdf0","url":"pwa-512.png"},{"revision":"278e8c999f9f15c3726b6bac8a40c6c5","url":"small-icon.svg"},{"revision":"d7dcc96e69efd9ecf21ccd70313cee7b","url":"manifest.webmanifest"}]);self.addEventListener("message",a=>{var e;((e=a.data)==null?void 0:e.type)==="SKIP_WAITING"&&self.skipWaiting()});self.addEventListener("push",a=>{const e=(()=>{var s;try{return((s=a.data)==null?void 0:s.json())??{}}catch{return{}}})(),t=(()=>{try{return new URL(e.url??"/",self.location.origin).toString()}catch{return self.location.origin}})();a.waitUntil((async()=>{(await self.clients.matchAll({type:"window",includeUncontrolled:!0})).some(i=>"visibilityState"in i&&i.visibilityState==="visible"?i.url===t:!1)||await self.registration.showNotification(e.title??"Panda",{body:e.body??"点开查看最新会话进展。",tag:e.tag??"panda-web-push",icon:"/pwa-512.png",badge:"/pwa-192.png",data:{url:t,sessionId:e.sessionId??null}})})())});self.addEventListener("notificationclick",a=>{var t;const e=typeof((t=a.notification.data)==null?void 0:t.url)=="string"?a.notification.data.url:self.location.origin;a.notification.close(),a.waitUntil((async()=>{const s=await self.clients.matchAll({type:"window",includeUncontrolled:!0});for(const n of s)if("focus"in n){if(n.url===e){await n.focus();return}if("navigate"in n){await n.navigate(e),await n.focus();return}}await self.clients.openWindow(e)})())});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jamiexiongr/panda-hub",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "description": "Panda hub runtime",
@@ -9,6 +9,7 @@
9
9
  "@fastify/cors": "^10.0.2",
10
10
  "@fastify/websocket": "^11.0.2",
11
11
  "fastify": "^5.2.1",
12
+ "node-windows": "^1.0.0-beta.8",
12
13
  "web-push": "^3.6.7"
13
14
  },
14
15
  "bin": {
@@ -1,109 +0,0 @@
1
- import {
2
- configureTailscaleServe,
3
- ensurePandaHubApiKey,
4
- printTerminalQr,
5
- resolveTailscalePublicationMode,
6
- resolveTailscaleServePort,
7
- startPandaSessionService
8
- } from "./chunk-N5CXOFMD.mjs";
9
-
10
- // release/panda-hub/src/index.ts
11
- import fs from "fs";
12
- import path from "path";
13
- import { fileURLToPath } from "url";
14
-
15
- // release/panda-hub/package.json
16
- var package_default = {
17
- name: "@jamiexiongr/panda-hub",
18
- version: "0.1.19",
19
- type: "module",
20
- private: false,
21
- description: "Panda hub runtime",
22
- dependencies: {
23
- "@fastify/compress": "^8.3.1",
24
- "@fastify/cors": "^10.0.2",
25
- "@fastify/websocket": "^11.0.2",
26
- fastify: "^5.2.1",
27
- "web-push": "^3.6.7"
28
- },
29
- bin: {
30
- "panda-hub": "./bin/panda-hub.cjs"
31
- },
32
- exports: {
33
- ".": "./dist/index.mjs"
34
- },
35
- files: [
36
- "bin",
37
- "dist"
38
- ],
39
- publishConfig: {
40
- access: "public",
41
- registry: "https://registry.npmjs.org/"
42
- },
43
- engines: {
44
- node: ">=20.19.0"
45
- }
46
- };
47
-
48
- // release/panda-hub/src/index.ts
49
- var currentDirectory = path.dirname(fileURLToPath(import.meta.url));
50
- var resolveBundledWebUiDir = () => {
51
- const candidates = [
52
- path.resolve(currentDirectory, "web"),
53
- path.resolve(currentDirectory, "../dist/web"),
54
- path.resolve(currentDirectory, "../web")
55
- ];
56
- return candidates.find((candidate) => fs.existsSync(candidate)) ?? candidates[0];
57
- };
58
- var startJamiexiongrHub = async (options) => {
59
- const publishMode = options?.tailscalePublicationMode ?? resolveTailscalePublicationMode({
60
- envPrefix: "PANDA_HUB"
61
- });
62
- const port = Number(process.env.PANDA_HUB_PORT ?? 4343);
63
- const tailscaleServe = configureTailscaleServe({
64
- enabled: publishMode !== "disabled",
65
- mode: publishMode === "disabled" ? void 0 : publishMode,
66
- serviceName: "panda-hub",
67
- localPort: port,
68
- servePort: resolveTailscaleServePort({
69
- envPrefix: "PANDA_HUB",
70
- defaultPort: 443
71
- }),
72
- logger: console
73
- });
74
- const hubApiKey = await ensurePandaHubApiKey({
75
- configuredApiKey: process.env.PANDA_HUB_API_KEY ?? null,
76
- codexHome: process.env.PANDA_CODEX_HOME ?? null,
77
- logger: console
78
- });
79
- if (hubApiKey.apiKey) {
80
- process.env.PANDA_HUB_API_KEY = hubApiKey.apiKey;
81
- }
82
- const webUiDir = resolveBundledWebUiDir();
83
- const app = await startPandaSessionService({
84
- serviceName: "panda-hub",
85
- mode: "hub",
86
- port,
87
- transport: "hub-routed",
88
- version: package_default.version,
89
- webUiDir
90
- });
91
- if (tailscaleServe.active && tailscaleServe.baseUrl) {
92
- if (tailscaleServe.mode === "funnel") {
93
- console.info(`Panda hub Public HTTPS URL: ${tailscaleServe.baseUrl}`);
94
- console.info(`Public PWA install URL: ${tailscaleServe.baseUrl}`);
95
- } else {
96
- console.info(`Panda hub Tailscale HTTPS URL: ${tailscaleServe.baseUrl}`);
97
- console.info(`Agent hub URL env: PANDA_HUB_URL=${tailscaleServe.baseUrl}`);
98
- }
99
- printTerminalQr(tailscaleServe.baseUrl, {
100
- logger: console,
101
- label: tailscaleServe.mode === "funnel" ? "Scan this QR code to open the public Panda hub on your phone:" : "Scan this QR code to open Panda hub on your phone:"
102
- });
103
- }
104
- return app;
105
- };
106
-
107
- export {
108
- startJamiexiongrHub
109
- };