@hienlh/ppm 0.13.10 → 0.13.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/assets/skills/ppm/SKILL.md +1 -1
- package/assets/skills/ppm/references/cli-reference.md +4 -4
- package/assets/skills/ppm/references/http-api.md +1 -1
- package/bun.lock +2135 -0
- package/bunfig.toml +2 -0
- package/dist/web/assets/architecture-PBZL5I3N-DVlAZGlv.js +1 -0
- package/dist/web/assets/{audio-preview-DISP-2AE.js → audio-preview-BjoIjXlf.js} +1 -1
- package/dist/web/assets/chat-tab-Cq8xYO7K.js +12 -0
- package/dist/web/assets/{code-editor-BofKrbM8.js → code-editor-DZ1e_sz0.js} +2 -2
- package/dist/web/assets/{conflict-editor-kaAZUFD5.js → conflict-editor-WxMZDucw.js} +1 -1
- package/dist/web/assets/{database-viewer-P38Vxzkx.js → database-viewer-BRW8CMzC.js} +1 -1
- package/dist/web/assets/{diff-viewer-DlJfbgNJ.js → diff-viewer-BOTb0dkG.js} +1 -1
- package/dist/web/assets/{extension-webview-5s2MUx38.js → extension-webview-DgfgR787.js} +1 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-b3n-Tgk6.js +1 -0
- package/dist/web/assets/{glide-data-grid-D5D1N3L7.js → glide-data-grid-DIvkBUKj.js} +1 -1
- package/dist/web/assets/{image-preview-C9osjEPa.js → image-preview-BlBVP277.js} +1 -1
- package/dist/web/assets/{index-CpcqiQOx.js → index-zP-OjEml.js} +4 -4
- package/dist/web/assets/info-3K5VOQVL-fJy9dGkV.js +1 -0
- package/dist/web/assets/keybindings-store-Djjc6tPj.js +1 -0
- package/dist/web/assets/{markdown-renderer-k3EA9XmF.js → markdown-renderer-CJMJ5Qq0.js} +3 -3
- package/dist/web/assets/packet-RMMSAZCW-DMi06dVb.js +1 -0
- package/dist/web/assets/{pdf-preview-DvgyxJX7.js → pdf-preview-D0JDPYYs.js} +1 -1
- package/dist/web/assets/pie-UPGHQEXC-BECm43s6.js +1 -0
- package/dist/web/assets/{port-forwarding-tab-CUkU6wac.js → port-forwarding-tab-DfaV6GPS.js} +1 -1
- package/dist/web/assets/{postgres-viewer-C1w0tqQw.js → postgres-viewer-DkVKzTKJ.js} +1 -1
- package/dist/web/assets/radar-KQ55EAFF-BwqCptkx.js +1 -0
- package/dist/web/assets/{settings-store-B-OmHo3J.js → settings-store-Dvk8Lvwm.js} +1 -1
- package/dist/web/assets/{settings-tab-D0zKyVwg.js → settings-tab-BFbe6ybw.js} +1 -1
- package/dist/web/assets/{sql-query-editor-46hLU7MI.js → sql-query-editor-BVn40O0T.js} +1 -1
- package/dist/web/assets/{sqlite-viewer-DrLi8P6y.js → sqlite-viewer-8oWf4JCB.js} +1 -1
- package/dist/web/assets/{terminal-tab-DqA3fEoQ.js → terminal-tab-D_C7amDZ.js} +1 -1
- package/dist/web/assets/treemap-KZPCXAKY-Da7U3Olf.js +1 -0
- package/dist/web/assets/{use-monaco-theme-DgzxiZS5.js → use-monaco-theme-SyJzNaNN.js} +1 -1
- package/dist/web/assets/{vendor-mermaid-CCmA_6Y0.js → vendor-mermaid-DsfY6y4f.js} +2 -2
- package/dist/web/assets/{video-preview-BU7tibc4.js → video-preview-BEuZs1dG.js} +1 -1
- package/dist/web/index.html +3 -3
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
- package/src/cli/commands/projects.ts +4 -0
- package/src/index.ts +0 -0
- package/src/services/config.service.ts +16 -7
- package/src/services/supervisor.ts +10 -3
- package/src/web/components/chat/chat-tab.tsx +4 -1
- package/src/web/components/chat/message-input.tsx +28 -14
- package/src/web/hooks/use-chat.ts +27 -20
- package/src/web/hooks/use-global-keybindings.ts +12 -0
- package/.opencode/.env.example +0 -98
- package/.opencode/skills/ads-management/scripts/.env.example +0 -13
- package/.opencode/skills/ai-multimodal/.env.example +0 -230
- package/.opencode/skills/cip-design/.env.example +0 -6
- package/.opencode/skills/devops/.env.example +0 -76
- package/.opencode/skills/docs-seeker/.env.example +0 -15
- package/.opencode/skills/elevenlabs/.env.example +0 -3
- package/.opencode/skills/marketing-dashboard/.env.example +0 -15
- package/.opencode/skills/marketing-dashboard/app/.env.example +0 -2
- package/.opencode/skills/marketing-dashboard/server/.env.example +0 -2
- package/.opencode/skills/mcp-management/scripts/dist/analyze-tools.js +0 -70
- package/.opencode/skills/mcp-management/scripts/dist/cli.js +0 -160
- package/.opencode/skills/mcp-management/scripts/dist/mcp-client.js +0 -183
- package/.opencode/skills/payment-integration/scripts/.env.example +0 -20
- package/.opencode/skills/sequential-thinking/.env.example +0 -8
- package/dist/web/assets/architecture-PBZL5I3N-By4Nv3Gj.js +0 -1
- package/dist/web/assets/chat-tab-lp_mVSG-.js +0 -12
- package/dist/web/assets/gitGraph-HDMCJU4V-BLXEKVf1.js +0 -1
- package/dist/web/assets/info-3K5VOQVL-CEkPcChg.js +0 -1
- package/dist/web/assets/keybindings-store-COxqSoML.js +0 -1
- package/dist/web/assets/packet-RMMSAZCW-DECxYTOi.js +0 -1
- package/dist/web/assets/pie-UPGHQEXC-cjpNfVG5.js +0 -1
- package/dist/web/assets/radar-KQ55EAFF-Dnpi068b.js +0 -1
- package/dist/web/assets/treemap-KZPCXAKY-DRyb1eiw.js +0 -1
- package/test.sql +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,i as t,n,o as r,r as i,t as a}from"./rolldown-runtime-FhOqtrmT.js";var o=`modulepreload`,s=function(e){return`/`+e},l={},u=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=function(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))},i=document.getElementsByTagName(`link`),a=document.querySelector(`meta[property=csp-nonce]`),u=a?.nonce||a?.getAttribute(`nonce`);r=e(t.map(e=>{if(e=s(e,n),e in l)return;l[e]=!0;let t=e.endsWith(`.css`),r=t?`[rel="stylesheet"]`:``;if(n)for(let n=i.length-1;n>=0;n--){let r=i[n];if(r.href===e&&(!t||r.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${e}"]${r}`))return;let a=document.createElement(`link`);if(a.rel=t?`stylesheet`:o,t||(a.as=`script`),a.crossOrigin=``,a.href=e,u&&a.setAttribute(`nonce`,u),document.head.appendChild(a),t)return new Promise((t,n)=>{a.addEventListener(`load`,t),a.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${e}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function d(e){return typeof e==`object`&&!!e&&typeof e.$type==`string`}function f(e){return typeof e==`object`&&!!e&&typeof e.$refText==`string`&&`ref`in e}function p(e){return typeof e==`object`&&!!e&&typeof e.$refText==`string`&&`items`in e}function m(e){return typeof e==`object`&&!!e&&typeof e.name==`string`&&typeof e.type==`string`&&typeof e.path==`string`}function h(e){return typeof e==`object`&&!!e&&typeof e.info==`object`&&typeof e.message==`string`}var g=class{constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(e){let t=this.types[e.container.$type];if(!t)throw Error(`Type ${e.container.$type||`undefined`} not found.`);let n=t.properties[e.property]?.referenceType;if(!n)throw Error(`Property ${e.property||`undefined`} of type ${e.container.$type} is not a reference.`);return n}getTypeMetaData(e){return this.types[e]||{name:e,properties:{},superTypes:[]}}isInstance(e,t){return d(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let n=this.subtypes[e];n||=this.subtypes[e]={};let r=n[t];if(r!==void 0)return r;{let r=this.types[e],i=r?r.superTypes.some(e=>this.isSubtype(e,t)):!1;return n[t]=i,i}}getAllSubTypes(e){let t=this.allSubtypes[e];if(t)return t;{let t=this.getAllTypes(),n=[];for(let r of t)this.isSubtype(r,e)&&n.push(r);return this.allSubtypes[e]=n,n}}};function _(e){return typeof e==`object`&&!!e&&Array.isArray(e.content)}function v(e){return typeof e==`object`&&!!e&&typeof e.tokenType==`object`}function y(e){return _(e)&&typeof e.fullText==`string`}var b=class e{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),t=0,n=e.next();for(;!n.done;)t++,n=e.next();return t}toArray(){let e=[],t=this.iterator(),n;do n=t.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,t){let n=this.map(n=>[e?e(n):n,t?t(n):n]);return new Map(n)}toString(){return this.join()}concat(t){return new e(()=>({first:this.startFn(),firstDone:!1,iterator:t[Symbol.iterator]()}),e=>{let t;if(!e.firstDone){do if(t=this.nextFn(e.first),!t.done)return t;while(!t.done);e.firstDone=!0}do if(t=e.iterator.next(),!t.done)return t;while(!t.done);return w})}join(e=`,`){let t=this.iterator(),n=``,r,i=!1;do r=t.next(),r.done||(i&&(n+=e),n+=x(r.value)),i=!0;while(!r.done);return n}indexOf(e,t=0){let n=this.iterator(),r=0,i=n.next();for(;!i.done;){if(r>=t&&i.value===e)return r;i=n.next(),r++}return-1}every(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(!e(n.value))return!1;n=t.next()}return!0}some(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(e(n.value))return!0;n=t.next()}return!1}forEach(e){let t=this.iterator(),n=0,r=t.next();for(;!r.done;)e(r.value,n),r=t.next(),n++}map(t){return new e(this.startFn,e=>{let{done:n,value:r}=this.nextFn(e);return n?w:{done:!1,value:t(r)}})}filter(t){return new e(this.startFn,e=>{let n;do if(n=this.nextFn(e),!n.done&&t(n.value))return n;while(!n.done);return w})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){let n=this.iterator(),r=t,i=n.next();for(;!i.done;)r=r===void 0?i.value:e(r,i.value),i=n.next();return r}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){let r=e.next();if(r.done)return n;let i=this.recursiveReduce(e,t,n);return i===void 0?r.value:t(i,r.value)}find(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(e(n.value))return n.value;n=t.next()}}findIndex(e){let t=this.iterator(),n=0,r=t.next();for(;!r.done;){if(e(r.value))return n;r=t.next(),n++}return-1}includes(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(n.value===e)return!0;n=t.next()}return!1}flatMap(t){return new e(()=>({this:this.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(t.done)e.iterator=void 0;else return t}let{done:n,value:r}=this.nextFn(e.this);if(!n){let n=t(r);if(S(n))e.iterator=n[Symbol.iterator]();else return{done:!1,value:n}}}while(e.iterator);return w})}flat(t){if(t===void 0&&(t=1),t<=0)return this;let n=t>1?this.flat(t-1):this;return new e(()=>({this:n.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(t.done)e.iterator=void 0;else return t}let{done:t,value:r}=n.nextFn(e.this);if(!t)if(S(r))e.iterator=r[Symbol.iterator]();else return{done:!1,value:r}}while(e.iterator);return w})}head(){let e=this.iterator().next();if(!e.done)return e.value}tail(t=1){return new e(()=>{let e=this.startFn();for(let n=0;n<t;n++)if(this.nextFn(e).done)return e;return e},this.nextFn)}limit(t){return new e(()=>({size:0,state:this.startFn()}),e=>(e.size++,e.size>t?w:this.nextFn(e.state)))}distinct(t){return new e(()=>({set:new Set,internalState:this.startFn()}),e=>{let n;do if(n=this.nextFn(e.internalState),!n.done){let r=t?t(n.value):n.value;if(!e.set.has(r))return e.set.add(r),n}while(!n.done);return w})}exclude(e,t){let n=new Set;for(let r of e){let e=t?t(r):r;n.add(e)}return this.filter(e=>{let r=t?t(e):e;return!n.has(r)})}};function x(e){return typeof e==`string`?e:e===void 0?`undefined`:typeof e.toString==`function`?e.toString():Object.prototype.toString.call(e)}function S(e){return!!e&&typeof e[Symbol.iterator]==`function`}var C=new b(()=>void 0,()=>w),w=Object.freeze({done:!0,value:void 0});function T(...e){if(e.length===1){let t=e[0];if(t instanceof b)return t;if(S(t))return new b(()=>t[Symbol.iterator](),e=>e.next());if(typeof t.length==`number`)return new b(()=>({index:0}),e=>e.index<t.length?{done:!1,value:t[e.index++]}:w)}return e.length>1?new b(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){let n=e[t.collIndex++];S(n)?t.iterator=n[Symbol.iterator]():n&&typeof n.length==`number`&&(t.array=n)}}while(t.iterator||t.array||t.collIndex<e.length);return w}):C}var E=class extends b{constructor(e,t,n){super(()=>({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),e=>{for(e.pruned&&=(e.iterators.pop(),!1);e.iterators.length>0;){let n=e.iterators[e.iterators.length-1].next();if(n.done)e.iterators.pop();else return e.iterators.push(t(n.value)[Symbol.iterator]()),n}return w})}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}},D;(function(e){function t(e){return e.reduce((e,t)=>e+t,0)}e.sum=t;function n(e){return e.reduce((e,t)=>e*t,0)}e.product=n;function r(e){return e.reduce((e,t)=>Math.min(e,t))}e.min=r;function i(e){return e.reduce((e,t)=>Math.max(e,t))}e.max=i})(D||={});function O(e,t={}){for(let[n,r]of Object.entries(e))n.startsWith(`$`)||(Array.isArray(r)?r.forEach((r,i)=>{d(r)&&(r.$container=e,r.$containerProperty=n,r.$containerIndex=i,t.deep&&O(r,t))}):d(r)&&(r.$container=e,r.$containerProperty=n,t.deep&&O(r,t)))}function k(e,t){let n=e;for(;n;){if(t(n))return n;n=n.$container}}function A(e){let t=j(e).$document;if(!t)throw Error(`AST node has no document.`);return t}function j(e){for(;e.$container;)e=e.$container;return e}function M(e){return f(e)?e.ref?[e.ref]:[]:p(e)?e.items.map(e=>e.ref):[]}function N(e,t){if(!e)throw Error(`Node must be an AstNode.`);let n=t?.range;return new b(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let r=t.keys[t.keyIndex];if(!r.startsWith(`$`)){let i=e[r];if(d(i)){if(t.keyIndex++,I(i,n))return{done:!1,value:i}}else if(Array.isArray(i)){for(;t.arrayIndex<i.length;){let e=i[t.arrayIndex++];if(d(e)&&I(e,n))return{done:!1,value:e}}t.arrayIndex=0}}t.keyIndex++}return w})}function P(e,t){if(!e)throw Error(`Root node must be an AstNode.`);return new E(e,e=>N(e,t))}function F(e,t){if(!e)throw Error(`Root node must be an AstNode.`);return t?.range&&!I(e,t.range)?new E(e,()=>[]):new E(e,e=>N(e,t),{includeRoot:!0})}function I(e,t){if(!t)return!0;let n=e.$cstNode?.range;return n?Ot(n,t):!1}function L(e){return new b(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let n=t.keys[t.keyIndex];if(!n.startsWith(`$`)){let r=e[n];if(f(r)||p(r))return t.keyIndex++,{done:!1,value:{reference:r,container:e,property:n}};if(Array.isArray(r)){for(;t.arrayIndex<r.length;){let i=t.arrayIndex++,a=r[i];if(f(a)||p(r))return{done:!1,value:{reference:a,container:e,property:n,index:i}}}t.arrayIndex=0}}t.keyIndex++}return w})}function R(e,t){let n=e.getTypeMetaData(t.$type),r=t;for(let e of Object.values(n.properties))e.defaultValue!==void 0&&r[e.name]===void 0&&(r[e.name]=z(e.defaultValue))}function z(e){return Array.isArray(e)?[...e.map(z)]:e}var B={$type:`AbstractElement`,cardinality:`cardinality`};function V(e){return St.isInstance(e,B.$type)}var H={$type:`AbstractParserRule`};function ee(e){return St.isInstance(e,H.$type)}var te={$type:`AbstractRule`},U={$type:`AbstractType`},ne={$type:`Action`,cardinality:`cardinality`,feature:`feature`,inferredType:`inferredType`,operator:`operator`,type:`type`};function re(e){return St.isInstance(e,ne.$type)}var W={$type:`Alternatives`,cardinality:`cardinality`,elements:`elements`};function G(e){return St.isInstance(e,W.$type)}var K={$type:`ArrayLiteral`,elements:`elements`},ie={$type:`ArrayType`,elementType:`elementType`},ae={$type:`Assignment`,cardinality:`cardinality`,feature:`feature`,operator:`operator`,predicate:`predicate`,terminal:`terminal`};function oe(e){return St.isInstance(e,ae.$type)}var se={$type:`BooleanLiteral`,true:`true`};function ce(e){return St.isInstance(e,se.$type)}var le={$type:`CharacterRange`,cardinality:`cardinality`,left:`left`,lookahead:`lookahead`,parenthesized:`parenthesized`,right:`right`};function ue(e){return St.isInstance(e,le.$type)}var de={$type:`Condition`},fe={$type:`Conjunction`,left:`left`,right:`right`};function pe(e){return St.isInstance(e,fe.$type)}var me={$type:`CrossReference`,cardinality:`cardinality`,deprecatedSyntax:`deprecatedSyntax`,isMulti:`isMulti`,terminal:`terminal`,type:`type`};function he(e){return St.isInstance(e,me.$type)}var ge={$type:`Disjunction`,left:`left`,right:`right`};function _e(e){return St.isInstance(e,ge.$type)}var ve={$type:`EndOfFile`,cardinality:`cardinality`};function ye(e){return St.isInstance(e,ve.$type)}var be={$type:`Grammar`,imports:`imports`,interfaces:`interfaces`,isDeclared:`isDeclared`,name:`name`,rules:`rules`,types:`types`},xe={$type:`GrammarImport`,path:`path`},Se={$type:`Group`,cardinality:`cardinality`,elements:`elements`,guardCondition:`guardCondition`,predicate:`predicate`};function Ce(e){return St.isInstance(e,Se.$type)}var we={$type:`InferredType`,name:`name`};function Te(e){return St.isInstance(e,we.$type)}var Ee={$type:`InfixRule`,call:`call`,dataType:`dataType`,inferredType:`inferredType`,name:`name`,operators:`operators`,parameters:`parameters`,returnType:`returnType`};function De(e){return St.isInstance(e,Ee.$type)}var Oe={$type:`InfixRuleOperatorList`,associativity:`associativity`,operators:`operators`},ke={$type:`InfixRuleOperators`,precedences:`precedences`},Ae={$type:`Interface`,attributes:`attributes`,name:`name`,superTypes:`superTypes`};function je(e){return St.isInstance(e,Ae.$type)}var Me={$type:`Keyword`,cardinality:`cardinality`,predicate:`predicate`,value:`value`};function Ne(e){return St.isInstance(e,Me.$type)}var Pe={$type:`NamedArgument`,calledByName:`calledByName`,parameter:`parameter`,value:`value`},Fe={$type:`NegatedToken`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,terminal:`terminal`};function Ie(e){return St.isInstance(e,Fe.$type)}var Le={$type:`Negation`,value:`value`};function Re(e){return St.isInstance(e,Le.$type)}var ze={$type:`NumberLiteral`,value:`value`},Be={$type:`Parameter`,name:`name`},Ve={$type:`ParameterReference`,parameter:`parameter`};function He(e){return St.isInstance(e,Ve.$type)}var Ue={$type:`ParserRule`,dataType:`dataType`,definition:`definition`,entry:`entry`,fragment:`fragment`,inferredType:`inferredType`,name:`name`,parameters:`parameters`,returnType:`returnType`};function We(e){return St.isInstance(e,Ue.$type)}var Ge={$type:`ReferenceType`,isMulti:`isMulti`,referenceType:`referenceType`},Ke={$type:`RegexToken`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,regex:`regex`};function qe(e){return St.isInstance(e,Ke.$type)}var Je={$type:`ReturnType`,name:`name`};function Ye(e){return St.isInstance(e,Je.$type)}var Xe={$type:`RuleCall`,arguments:`arguments`,cardinality:`cardinality`,predicate:`predicate`,rule:`rule`};function Ze(e){return St.isInstance(e,Xe.$type)}var Qe={$type:`SimpleType`,primitiveType:`primitiveType`,stringType:`stringType`,typeRef:`typeRef`};function $e(e){return St.isInstance(e,Qe.$type)}var et={$type:`StringLiteral`,value:`value`},tt={$type:`TerminalAlternatives`,cardinality:`cardinality`,elements:`elements`,lookahead:`lookahead`,parenthesized:`parenthesized`};function nt(e){return St.isInstance(e,tt.$type)}var rt={$type:`TerminalElement`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`},it={$type:`TerminalGroup`,cardinality:`cardinality`,elements:`elements`,lookahead:`lookahead`,parenthesized:`parenthesized`};function at(e){return St.isInstance(e,it.$type)}var ot={$type:`TerminalRule`,definition:`definition`,fragment:`fragment`,hidden:`hidden`,name:`name`,type:`type`};function st(e){return St.isInstance(e,ot.$type)}var ct={$type:`TerminalRuleCall`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,rule:`rule`};function lt(e){return St.isInstance(e,ct.$type)}var ut={$type:`Type`,name:`name`,type:`type`};function dt(e){return St.isInstance(e,ut.$type)}var ft={$type:`TypeAttribute`,defaultValue:`defaultValue`,isOptional:`isOptional`,name:`name`,type:`type`},pt={$type:`TypeDefinition`},mt={$type:`UnionType`,types:`types`},ht={$type:`UnorderedGroup`,cardinality:`cardinality`,elements:`elements`};function gt(e){return St.isInstance(e,ht.$type)}var _t={$type:`UntilToken`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,terminal:`terminal`};function eee(e){return St.isInstance(e,_t.$type)}var vt={$type:`ValueLiteral`},yt={$type:`Wildcard`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`};function bt(e){return St.isInstance(e,yt.$type)}var xt=class extends g{constructor(){super(...arguments),this.types={AbstractElement:{name:B.$type,properties:{cardinality:{name:B.cardinality}},superTypes:[]},AbstractParserRule:{name:H.$type,properties:{},superTypes:[te.$type,U.$type]},AbstractRule:{name:te.$type,properties:{},superTypes:[]},AbstractType:{name:U.$type,properties:{},superTypes:[]},Action:{name:ne.$type,properties:{cardinality:{name:ne.cardinality},feature:{name:ne.feature},inferredType:{name:ne.inferredType},operator:{name:ne.operator},type:{name:ne.type,referenceType:U.$type}},superTypes:[B.$type]},Alternatives:{name:W.$type,properties:{cardinality:{name:W.cardinality},elements:{name:W.elements,defaultValue:[]}},superTypes:[B.$type]},ArrayLiteral:{name:K.$type,properties:{elements:{name:K.elements,defaultValue:[]}},superTypes:[vt.$type]},ArrayType:{name:ie.$type,properties:{elementType:{name:ie.elementType}},superTypes:[pt.$type]},Assignment:{name:ae.$type,properties:{cardinality:{name:ae.cardinality},feature:{name:ae.feature},operator:{name:ae.operator},predicate:{name:ae.predicate},terminal:{name:ae.terminal}},superTypes:[B.$type]},BooleanLiteral:{name:se.$type,properties:{true:{name:se.true,defaultValue:!1}},superTypes:[de.$type,vt.$type]},CharacterRange:{name:le.$type,properties:{cardinality:{name:le.cardinality},left:{name:le.left},lookahead:{name:le.lookahead},parenthesized:{name:le.parenthesized,defaultValue:!1},right:{name:le.right}},superTypes:[rt.$type]},Condition:{name:de.$type,properties:{},superTypes:[]},Conjunction:{name:fe.$type,properties:{left:{name:fe.left},right:{name:fe.right}},superTypes:[de.$type]},CrossReference:{name:me.$type,properties:{cardinality:{name:me.cardinality},deprecatedSyntax:{name:me.deprecatedSyntax,defaultValue:!1},isMulti:{name:me.isMulti,defaultValue:!1},terminal:{name:me.terminal},type:{name:me.type,referenceType:U.$type}},superTypes:[B.$type]},Disjunction:{name:ge.$type,properties:{left:{name:ge.left},right:{name:ge.right}},superTypes:[de.$type]},EndOfFile:{name:ve.$type,properties:{cardinality:{name:ve.cardinality}},superTypes:[B.$type]},Grammar:{name:be.$type,properties:{imports:{name:be.imports,defaultValue:[]},interfaces:{name:be.interfaces,defaultValue:[]},isDeclared:{name:be.isDeclared,defaultValue:!1},name:{name:be.name},rules:{name:be.rules,defaultValue:[]},types:{name:be.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:xe.$type,properties:{path:{name:xe.path}},superTypes:[]},Group:{name:Se.$type,properties:{cardinality:{name:Se.cardinality},elements:{name:Se.elements,defaultValue:[]},guardCondition:{name:Se.guardCondition},predicate:{name:Se.predicate}},superTypes:[B.$type]},InferredType:{name:we.$type,properties:{name:{name:we.name}},superTypes:[U.$type]},InfixRule:{name:Ee.$type,properties:{call:{name:Ee.call},dataType:{name:Ee.dataType},inferredType:{name:Ee.inferredType},name:{name:Ee.name},operators:{name:Ee.operators},parameters:{name:Ee.parameters,defaultValue:[]},returnType:{name:Ee.returnType,referenceType:U.$type}},superTypes:[H.$type]},InfixRuleOperatorList:{name:Oe.$type,properties:{associativity:{name:Oe.associativity},operators:{name:Oe.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:ke.$type,properties:{precedences:{name:ke.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:Ae.$type,properties:{attributes:{name:Ae.attributes,defaultValue:[]},name:{name:Ae.name},superTypes:{name:Ae.superTypes,defaultValue:[],referenceType:U.$type}},superTypes:[U.$type]},Keyword:{name:Me.$type,properties:{cardinality:{name:Me.cardinality},predicate:{name:Me.predicate},value:{name:Me.value}},superTypes:[B.$type]},NamedArgument:{name:Pe.$type,properties:{calledByName:{name:Pe.calledByName,defaultValue:!1},parameter:{name:Pe.parameter,referenceType:Be.$type},value:{name:Pe.value}},superTypes:[]},NegatedToken:{name:Fe.$type,properties:{cardinality:{name:Fe.cardinality},lookahead:{name:Fe.lookahead},parenthesized:{name:Fe.parenthesized,defaultValue:!1},terminal:{name:Fe.terminal}},superTypes:[rt.$type]},Negation:{name:Le.$type,properties:{value:{name:Le.value}},superTypes:[de.$type]},NumberLiteral:{name:ze.$type,properties:{value:{name:ze.value}},superTypes:[vt.$type]},Parameter:{name:Be.$type,properties:{name:{name:Be.name}},superTypes:[]},ParameterReference:{name:Ve.$type,properties:{parameter:{name:Ve.parameter,referenceType:Be.$type}},superTypes:[de.$type]},ParserRule:{name:Ue.$type,properties:{dataType:{name:Ue.dataType},definition:{name:Ue.definition},entry:{name:Ue.entry,defaultValue:!1},fragment:{name:Ue.fragment,defaultValue:!1},inferredType:{name:Ue.inferredType},name:{name:Ue.name},parameters:{name:Ue.parameters,defaultValue:[]},returnType:{name:Ue.returnType,referenceType:U.$type}},superTypes:[H.$type]},ReferenceType:{name:Ge.$type,properties:{isMulti:{name:Ge.isMulti,defaultValue:!1},referenceType:{name:Ge.referenceType}},superTypes:[pt.$type]},RegexToken:{name:Ke.$type,properties:{cardinality:{name:Ke.cardinality},lookahead:{name:Ke.lookahead},parenthesized:{name:Ke.parenthesized,defaultValue:!1},regex:{name:Ke.regex}},superTypes:[rt.$type]},ReturnType:{name:Je.$type,properties:{name:{name:Je.name}},superTypes:[]},RuleCall:{name:Xe.$type,properties:{arguments:{name:Xe.arguments,defaultValue:[]},cardinality:{name:Xe.cardinality},predicate:{name:Xe.predicate},rule:{name:Xe.rule,referenceType:te.$type}},superTypes:[B.$type]},SimpleType:{name:Qe.$type,properties:{primitiveType:{name:Qe.primitiveType},stringType:{name:Qe.stringType},typeRef:{name:Qe.typeRef,referenceType:U.$type}},superTypes:[pt.$type]},StringLiteral:{name:et.$type,properties:{value:{name:et.value}},superTypes:[vt.$type]},TerminalAlternatives:{name:tt.$type,properties:{cardinality:{name:tt.cardinality},elements:{name:tt.elements,defaultValue:[]},lookahead:{name:tt.lookahead},parenthesized:{name:tt.parenthesized,defaultValue:!1}},superTypes:[rt.$type]},TerminalElement:{name:rt.$type,properties:{cardinality:{name:rt.cardinality},lookahead:{name:rt.lookahead},parenthesized:{name:rt.parenthesized,defaultValue:!1}},superTypes:[B.$type]},TerminalGroup:{name:it.$type,properties:{cardinality:{name:it.cardinality},elements:{name:it.elements,defaultValue:[]},lookahead:{name:it.lookahead},parenthesized:{name:it.parenthesized,defaultValue:!1}},superTypes:[rt.$type]},TerminalRule:{name:ot.$type,properties:{definition:{name:ot.definition},fragment:{name:ot.fragment,defaultValue:!1},hidden:{name:ot.hidden,defaultValue:!1},name:{name:ot.name},type:{name:ot.type}},superTypes:[te.$type]},TerminalRuleCall:{name:ct.$type,properties:{cardinality:{name:ct.cardinality},lookahead:{name:ct.lookahead},parenthesized:{name:ct.parenthesized,defaultValue:!1},rule:{name:ct.rule,referenceType:ot.$type}},superTypes:[rt.$type]},Type:{name:ut.$type,properties:{name:{name:ut.name},type:{name:ut.type}},superTypes:[U.$type]},TypeAttribute:{name:ft.$type,properties:{defaultValue:{name:ft.defaultValue},isOptional:{name:ft.isOptional,defaultValue:!1},name:{name:ft.name},type:{name:ft.type}},superTypes:[]},TypeDefinition:{name:pt.$type,properties:{},superTypes:[]},UnionType:{name:mt.$type,properties:{types:{name:mt.types,defaultValue:[]}},superTypes:[pt.$type]},UnorderedGroup:{name:ht.$type,properties:{cardinality:{name:ht.cardinality},elements:{name:ht.elements,defaultValue:[]}},superTypes:[B.$type]},UntilToken:{name:_t.$type,properties:{cardinality:{name:_t.cardinality},lookahead:{name:_t.lookahead},parenthesized:{name:_t.parenthesized,defaultValue:!1},terminal:{name:_t.terminal}},superTypes:[rt.$type]},ValueLiteral:{name:vt.$type,properties:{},superTypes:[]},Wildcard:{name:yt.$type,properties:{cardinality:{name:yt.cardinality},lookahead:{name:yt.lookahead},parenthesized:{name:yt.parenthesized,defaultValue:!1}},superTypes:[rt.$type]}}}},St=new xt;function Ct(e){return new E(e,e=>_(e)?e.content:[],{includeRoot:!0})}function tee(e,t){for(;e.container;)if(e=e.container,e===t)return!0;return!1}function wt(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function Tt(e){if(!e)return;let{offset:t,end:n,range:r}=e;return{range:r,offset:t,end:n,length:n-t}}var Et;(function(e){e[e.Before=0]=`Before`,e[e.After=1]=`After`,e[e.OverlapFront=2]=`OverlapFront`,e[e.OverlapBack=3]=`OverlapBack`,e[e.Inside=4]=`Inside`,e[e.Outside=5]=`Outside`})(Et||={});function Dt(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<=t.start.character)return Et.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return Et.After;let n=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,r=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return n&&r?Et.Inside:n?Et.OverlapBack:r?Et.OverlapFront:Et.Outside}function Ot(e,t){return Dt(e,t)>Et.After}var nee=/^[\w\p{L}]$/u;function ree(e,t){if(e){let n=iee(e,!0);if(n&&kt(n,t))return n;if(y(e)){let n=e.content.findIndex(e=>!e.hidden);for(let r=n-1;r>=0;r--){let n=e.content[r];if(kt(n,t))return n}}}}function kt(e,t){return v(e)&&t.includes(e.tokenType.name)}function iee(e,t=!0){for(;e.container;){let n=e.container,r=n.content.indexOf(e);for(;r>0;){r--;let e=n.content[r];if(t||!e.hidden)return e}e=n}}var At=class extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}};function jt(e,t=`Error: Got unexpected value.`){throw Error(t)}function Mt(e){return e.charCodeAt(0)}function Nt(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function Pt(e,t){if(e[t]===!0)throw`duplicate flag `+t;e[t],e[t]=!0}function Ft(e){if(e===void 0)throw Error(`Internal Error - Should never get here!`);return!0}function It(){throw Error(`Internal Error - Should never get here!`)}function Lt(e){return e.type===`Character`}var Rt=[];for(let e=Mt(`0`);e<=Mt(`9`);e++)Rt.push(e);var zt=[Mt(`_`)].concat(Rt);for(let e=Mt(`a`);e<=Mt(`z`);e++)zt.push(e);for(let e=Mt(`A`);e<=Mt(`Z`);e++)zt.push(e);var Bt=[Mt(` `),Mt(`\f`),Mt(`
|
|
1
|
+
import{a as e,i as t,n,o as r,r as i,t as a}from"./rolldown-runtime-FhOqtrmT.js";var o=`modulepreload`,s=function(e){return`/`+e},l={},u=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function u(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=u(t.map(t=>{if(t=s(t,n),t in l)return;l[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let u=document.createElement(`link`);if(u.rel=r?`stylesheet`:o,r||(u.as=`script`),u.crossOrigin=``,u.href=t,a&&u.setAttribute(`nonce`,a),document.head.appendChild(u),r)return new Promise((e,n)=>{u.addEventListener(`load`,e),u.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function d(e){return typeof e==`object`&&!!e&&typeof e.$type==`string`}function f(e){return typeof e==`object`&&!!e&&typeof e.$refText==`string`&&`ref`in e}function p(e){return typeof e==`object`&&!!e&&typeof e.$refText==`string`&&`items`in e}function m(e){return typeof e==`object`&&!!e&&typeof e.name==`string`&&typeof e.type==`string`&&typeof e.path==`string`}function h(e){return typeof e==`object`&&!!e&&typeof e.info==`object`&&typeof e.message==`string`}var g=class{constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(e){let t=this.types[e.container.$type];if(!t)throw Error(`Type ${e.container.$type||`undefined`} not found.`);let n=t.properties[e.property]?.referenceType;if(!n)throw Error(`Property ${e.property||`undefined`} of type ${e.container.$type} is not a reference.`);return n}getTypeMetaData(e){return this.types[e]||{name:e,properties:{},superTypes:[]}}isInstance(e,t){return d(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let n=this.subtypes[e];n||=this.subtypes[e]={};let r=n[t];if(r!==void 0)return r;{let r=this.types[e],i=r?r.superTypes.some(e=>this.isSubtype(e,t)):!1;return n[t]=i,i}}getAllSubTypes(e){let t=this.allSubtypes[e];if(t)return t;{let t=this.getAllTypes(),n=[];for(let r of t)this.isSubtype(r,e)&&n.push(r);return this.allSubtypes[e]=n,n}}};function _(e){return typeof e==`object`&&!!e&&Array.isArray(e.content)}function v(e){return typeof e==`object`&&!!e&&typeof e.tokenType==`object`}function y(e){return _(e)&&typeof e.fullText==`string`}var b=class e{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let e=this.iterator(),t=0,n=e.next();for(;!n.done;)t++,n=e.next();return t}toArray(){let e=[],t=this.iterator(),n;do n=t.next(),n.value!==void 0&&e.push(n.value);while(!n.done);return e}toSet(){return new Set(this)}toMap(e,t){let n=this.map(n=>[e?e(n):n,t?t(n):n]);return new Map(n)}toString(){return this.join()}concat(t){return new e(()=>({first:this.startFn(),firstDone:!1,iterator:t[Symbol.iterator]()}),e=>{let t;if(!e.firstDone){do if(t=this.nextFn(e.first),!t.done)return t;while(!t.done);e.firstDone=!0}do if(t=e.iterator.next(),!t.done)return t;while(!t.done);return w})}join(e=`,`){let t=this.iterator(),n=``,r,i=!1;do r=t.next(),r.done||(i&&(n+=e),n+=x(r.value)),i=!0;while(!r.done);return n}indexOf(e,t=0){let n=this.iterator(),r=0,i=n.next();for(;!i.done;){if(r>=t&&i.value===e)return r;i=n.next(),r++}return-1}every(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(!e(n.value))return!1;n=t.next()}return!0}some(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(e(n.value))return!0;n=t.next()}return!1}forEach(e){let t=this.iterator(),n=0,r=t.next();for(;!r.done;)e(r.value,n),r=t.next(),n++}map(t){return new e(this.startFn,e=>{let{done:n,value:r}=this.nextFn(e);return n?w:{done:!1,value:t(r)}})}filter(t){return new e(this.startFn,e=>{let n;do if(n=this.nextFn(e),!n.done&&t(n.value))return n;while(!n.done);return w})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){let n=this.iterator(),r=t,i=n.next();for(;!i.done;)r=r===void 0?i.value:e(r,i.value),i=n.next();return r}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){let r=e.next();if(r.done)return n;let i=this.recursiveReduce(e,t,n);return i===void 0?r.value:t(i,r.value)}find(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(e(n.value))return n.value;n=t.next()}}findIndex(e){let t=this.iterator(),n=0,r=t.next();for(;!r.done;){if(e(r.value))return n;r=t.next(),n++}return-1}includes(e){let t=this.iterator(),n=t.next();for(;!n.done;){if(n.value===e)return!0;n=t.next()}return!1}flatMap(t){return new e(()=>({this:this.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(t.done)e.iterator=void 0;else return t}let{done:n,value:r}=this.nextFn(e.this);if(!n){let n=t(r);if(S(n))e.iterator=n[Symbol.iterator]();else return{done:!1,value:n}}}while(e.iterator);return w})}flat(t){if(t===void 0&&(t=1),t<=0)return this;let n=t>1?this.flat(t-1):this;return new e(()=>({this:n.startFn()}),e=>{do{if(e.iterator){let t=e.iterator.next();if(t.done)e.iterator=void 0;else return t}let{done:t,value:r}=n.nextFn(e.this);if(!t)if(S(r))e.iterator=r[Symbol.iterator]();else return{done:!1,value:r}}while(e.iterator);return w})}head(){let e=this.iterator().next();if(!e.done)return e.value}tail(t=1){return new e(()=>{let e=this.startFn();for(let n=0;n<t;n++)if(this.nextFn(e).done)return e;return e},this.nextFn)}limit(t){return new e(()=>({size:0,state:this.startFn()}),e=>(e.size++,e.size>t?w:this.nextFn(e.state)))}distinct(t){return new e(()=>({set:new Set,internalState:this.startFn()}),e=>{let n;do if(n=this.nextFn(e.internalState),!n.done){let r=t?t(n.value):n.value;if(!e.set.has(r))return e.set.add(r),n}while(!n.done);return w})}exclude(e,t){let n=new Set;for(let r of e){let e=t?t(r):r;n.add(e)}return this.filter(e=>{let r=t?t(e):e;return!n.has(r)})}};function x(e){return typeof e==`string`?e:e===void 0?`undefined`:typeof e.toString==`function`?e.toString():Object.prototype.toString.call(e)}function S(e){return!!e&&typeof e[Symbol.iterator]==`function`}var C=new b(()=>void 0,()=>w),w=Object.freeze({done:!0,value:void 0});function T(...e){if(e.length===1){let t=e[0];if(t instanceof b)return t;if(S(t))return new b(()=>t[Symbol.iterator](),e=>e.next());if(typeof t.length==`number`)return new b(()=>({index:0}),e=>e.index<t.length?{done:!1,value:t[e.index++]}:w)}return e.length>1?new b(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){let n=e[t.collIndex++];S(n)?t.iterator=n[Symbol.iterator]():n&&typeof n.length==`number`&&(t.array=n)}}while(t.iterator||t.array||t.collIndex<e.length);return w}):C}var E=class extends b{constructor(e,t,n){super(()=>({iterators:n?.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),e=>{for(e.pruned&&=(e.iterators.pop(),!1);e.iterators.length>0;){let n=e.iterators[e.iterators.length-1].next();if(n.done)e.iterators.pop();else return e.iterators.push(t(n.value)[Symbol.iterator]()),n}return w})}iterator(){let e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}},D;(function(e){function t(e){return e.reduce((e,t)=>e+t,0)}e.sum=t;function n(e){return e.reduce((e,t)=>e*t,0)}e.product=n;function r(e){return e.reduce((e,t)=>Math.min(e,t))}e.min=r;function i(e){return e.reduce((e,t)=>Math.max(e,t))}e.max=i})(D||={});function O(e,t={}){for(let[n,r]of Object.entries(e))n.startsWith(`$`)||(Array.isArray(r)?r.forEach((r,i)=>{d(r)&&(r.$container=e,r.$containerProperty=n,r.$containerIndex=i,t.deep&&O(r,t))}):d(r)&&(r.$container=e,r.$containerProperty=n,t.deep&&O(r,t)))}function k(e,t){let n=e;for(;n;){if(t(n))return n;n=n.$container}}function A(e){let t=j(e).$document;if(!t)throw Error(`AST node has no document.`);return t}function j(e){for(;e.$container;)e=e.$container;return e}function M(e){return f(e)?e.ref?[e.ref]:[]:p(e)?e.items.map(e=>e.ref):[]}function N(e,t){if(!e)throw Error(`Node must be an AstNode.`);let n=t?.range;return new b(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let r=t.keys[t.keyIndex];if(!r.startsWith(`$`)){let i=e[r];if(d(i)){if(t.keyIndex++,I(i,n))return{done:!1,value:i}}else if(Array.isArray(i)){for(;t.arrayIndex<i.length;){let e=i[t.arrayIndex++];if(d(e)&&I(e,n))return{done:!1,value:e}}t.arrayIndex=0}}t.keyIndex++}return w})}function P(e,t){if(!e)throw Error(`Root node must be an AstNode.`);return new E(e,e=>N(e,t))}function F(e,t){if(!e)throw Error(`Root node must be an AstNode.`);return t?.range&&!I(e,t.range)?new E(e,()=>[]):new E(e,e=>N(e,t),{includeRoot:!0})}function I(e,t){if(!t)return!0;let n=e.$cstNode?.range;return n?Ot(n,t):!1}function L(e){return new b(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let n=t.keys[t.keyIndex];if(!n.startsWith(`$`)){let r=e[n];if(f(r)||p(r))return t.keyIndex++,{done:!1,value:{reference:r,container:e,property:n}};if(Array.isArray(r)){for(;t.arrayIndex<r.length;){let i=t.arrayIndex++,a=r[i];if(f(a)||p(r))return{done:!1,value:{reference:a,container:e,property:n,index:i}}}t.arrayIndex=0}}t.keyIndex++}return w})}function R(e,t){let n=e.getTypeMetaData(t.$type),r=t;for(let e of Object.values(n.properties))e.defaultValue!==void 0&&r[e.name]===void 0&&(r[e.name]=z(e.defaultValue))}function z(e){return Array.isArray(e)?[...e.map(z)]:e}var B={$type:`AbstractElement`,cardinality:`cardinality`};function V(e){return St.isInstance(e,B.$type)}var H={$type:`AbstractParserRule`};function ee(e){return St.isInstance(e,H.$type)}var te={$type:`AbstractRule`},U={$type:`AbstractType`},ne={$type:`Action`,cardinality:`cardinality`,feature:`feature`,inferredType:`inferredType`,operator:`operator`,type:`type`};function re(e){return St.isInstance(e,ne.$type)}var W={$type:`Alternatives`,cardinality:`cardinality`,elements:`elements`};function G(e){return St.isInstance(e,W.$type)}var K={$type:`ArrayLiteral`,elements:`elements`},ie={$type:`ArrayType`,elementType:`elementType`},ae={$type:`Assignment`,cardinality:`cardinality`,feature:`feature`,operator:`operator`,predicate:`predicate`,terminal:`terminal`};function oe(e){return St.isInstance(e,ae.$type)}var se={$type:`BooleanLiteral`,true:`true`};function ce(e){return St.isInstance(e,se.$type)}var le={$type:`CharacterRange`,cardinality:`cardinality`,left:`left`,lookahead:`lookahead`,parenthesized:`parenthesized`,right:`right`};function ue(e){return St.isInstance(e,le.$type)}var de={$type:`Condition`},fe={$type:`Conjunction`,left:`left`,right:`right`};function pe(e){return St.isInstance(e,fe.$type)}var me={$type:`CrossReference`,cardinality:`cardinality`,deprecatedSyntax:`deprecatedSyntax`,isMulti:`isMulti`,terminal:`terminal`,type:`type`};function he(e){return St.isInstance(e,me.$type)}var ge={$type:`Disjunction`,left:`left`,right:`right`};function _e(e){return St.isInstance(e,ge.$type)}var ve={$type:`EndOfFile`,cardinality:`cardinality`};function ye(e){return St.isInstance(e,ve.$type)}var be={$type:`Grammar`,imports:`imports`,interfaces:`interfaces`,isDeclared:`isDeclared`,name:`name`,rules:`rules`,types:`types`},xe={$type:`GrammarImport`,path:`path`},Se={$type:`Group`,cardinality:`cardinality`,elements:`elements`,guardCondition:`guardCondition`,predicate:`predicate`};function Ce(e){return St.isInstance(e,Se.$type)}var we={$type:`InferredType`,name:`name`};function Te(e){return St.isInstance(e,we.$type)}var Ee={$type:`InfixRule`,call:`call`,dataType:`dataType`,inferredType:`inferredType`,name:`name`,operators:`operators`,parameters:`parameters`,returnType:`returnType`};function De(e){return St.isInstance(e,Ee.$type)}var Oe={$type:`InfixRuleOperatorList`,associativity:`associativity`,operators:`operators`},ke={$type:`InfixRuleOperators`,precedences:`precedences`},Ae={$type:`Interface`,attributes:`attributes`,name:`name`,superTypes:`superTypes`};function je(e){return St.isInstance(e,Ae.$type)}var Me={$type:`Keyword`,cardinality:`cardinality`,predicate:`predicate`,value:`value`};function Ne(e){return St.isInstance(e,Me.$type)}var Pe={$type:`NamedArgument`,calledByName:`calledByName`,parameter:`parameter`,value:`value`},Fe={$type:`NegatedToken`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,terminal:`terminal`};function Ie(e){return St.isInstance(e,Fe.$type)}var Le={$type:`Negation`,value:`value`};function Re(e){return St.isInstance(e,Le.$type)}var ze={$type:`NumberLiteral`,value:`value`},Be={$type:`Parameter`,name:`name`},Ve={$type:`ParameterReference`,parameter:`parameter`};function He(e){return St.isInstance(e,Ve.$type)}var Ue={$type:`ParserRule`,dataType:`dataType`,definition:`definition`,entry:`entry`,fragment:`fragment`,inferredType:`inferredType`,name:`name`,parameters:`parameters`,returnType:`returnType`};function We(e){return St.isInstance(e,Ue.$type)}var Ge={$type:`ReferenceType`,isMulti:`isMulti`,referenceType:`referenceType`},Ke={$type:`RegexToken`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,regex:`regex`};function qe(e){return St.isInstance(e,Ke.$type)}var Je={$type:`ReturnType`,name:`name`};function Ye(e){return St.isInstance(e,Je.$type)}var Xe={$type:`RuleCall`,arguments:`arguments`,cardinality:`cardinality`,predicate:`predicate`,rule:`rule`};function Ze(e){return St.isInstance(e,Xe.$type)}var Qe={$type:`SimpleType`,primitiveType:`primitiveType`,stringType:`stringType`,typeRef:`typeRef`};function $e(e){return St.isInstance(e,Qe.$type)}var et={$type:`StringLiteral`,value:`value`},tt={$type:`TerminalAlternatives`,cardinality:`cardinality`,elements:`elements`,lookahead:`lookahead`,parenthesized:`parenthesized`};function nt(e){return St.isInstance(e,tt.$type)}var rt={$type:`TerminalElement`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`},it={$type:`TerminalGroup`,cardinality:`cardinality`,elements:`elements`,lookahead:`lookahead`,parenthesized:`parenthesized`};function at(e){return St.isInstance(e,it.$type)}var ot={$type:`TerminalRule`,definition:`definition`,fragment:`fragment`,hidden:`hidden`,name:`name`,type:`type`};function st(e){return St.isInstance(e,ot.$type)}var ct={$type:`TerminalRuleCall`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,rule:`rule`};function lt(e){return St.isInstance(e,ct.$type)}var ut={$type:`Type`,name:`name`,type:`type`};function dt(e){return St.isInstance(e,ut.$type)}var ft={$type:`TypeAttribute`,defaultValue:`defaultValue`,isOptional:`isOptional`,name:`name`,type:`type`},pt={$type:`TypeDefinition`},mt={$type:`UnionType`,types:`types`},ht={$type:`UnorderedGroup`,cardinality:`cardinality`,elements:`elements`};function gt(e){return St.isInstance(e,ht.$type)}var _t={$type:`UntilToken`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`,terminal:`terminal`};function eee(e){return St.isInstance(e,_t.$type)}var vt={$type:`ValueLiteral`},yt={$type:`Wildcard`,cardinality:`cardinality`,lookahead:`lookahead`,parenthesized:`parenthesized`};function bt(e){return St.isInstance(e,yt.$type)}var xt=class extends g{constructor(){super(...arguments),this.types={AbstractElement:{name:B.$type,properties:{cardinality:{name:B.cardinality}},superTypes:[]},AbstractParserRule:{name:H.$type,properties:{},superTypes:[te.$type,U.$type]},AbstractRule:{name:te.$type,properties:{},superTypes:[]},AbstractType:{name:U.$type,properties:{},superTypes:[]},Action:{name:ne.$type,properties:{cardinality:{name:ne.cardinality},feature:{name:ne.feature},inferredType:{name:ne.inferredType},operator:{name:ne.operator},type:{name:ne.type,referenceType:U.$type}},superTypes:[B.$type]},Alternatives:{name:W.$type,properties:{cardinality:{name:W.cardinality},elements:{name:W.elements,defaultValue:[]}},superTypes:[B.$type]},ArrayLiteral:{name:K.$type,properties:{elements:{name:K.elements,defaultValue:[]}},superTypes:[vt.$type]},ArrayType:{name:ie.$type,properties:{elementType:{name:ie.elementType}},superTypes:[pt.$type]},Assignment:{name:ae.$type,properties:{cardinality:{name:ae.cardinality},feature:{name:ae.feature},operator:{name:ae.operator},predicate:{name:ae.predicate},terminal:{name:ae.terminal}},superTypes:[B.$type]},BooleanLiteral:{name:se.$type,properties:{true:{name:se.true,defaultValue:!1}},superTypes:[de.$type,vt.$type]},CharacterRange:{name:le.$type,properties:{cardinality:{name:le.cardinality},left:{name:le.left},lookahead:{name:le.lookahead},parenthesized:{name:le.parenthesized,defaultValue:!1},right:{name:le.right}},superTypes:[rt.$type]},Condition:{name:de.$type,properties:{},superTypes:[]},Conjunction:{name:fe.$type,properties:{left:{name:fe.left},right:{name:fe.right}},superTypes:[de.$type]},CrossReference:{name:me.$type,properties:{cardinality:{name:me.cardinality},deprecatedSyntax:{name:me.deprecatedSyntax,defaultValue:!1},isMulti:{name:me.isMulti,defaultValue:!1},terminal:{name:me.terminal},type:{name:me.type,referenceType:U.$type}},superTypes:[B.$type]},Disjunction:{name:ge.$type,properties:{left:{name:ge.left},right:{name:ge.right}},superTypes:[de.$type]},EndOfFile:{name:ve.$type,properties:{cardinality:{name:ve.cardinality}},superTypes:[B.$type]},Grammar:{name:be.$type,properties:{imports:{name:be.imports,defaultValue:[]},interfaces:{name:be.interfaces,defaultValue:[]},isDeclared:{name:be.isDeclared,defaultValue:!1},name:{name:be.name},rules:{name:be.rules,defaultValue:[]},types:{name:be.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:xe.$type,properties:{path:{name:xe.path}},superTypes:[]},Group:{name:Se.$type,properties:{cardinality:{name:Se.cardinality},elements:{name:Se.elements,defaultValue:[]},guardCondition:{name:Se.guardCondition},predicate:{name:Se.predicate}},superTypes:[B.$type]},InferredType:{name:we.$type,properties:{name:{name:we.name}},superTypes:[U.$type]},InfixRule:{name:Ee.$type,properties:{call:{name:Ee.call},dataType:{name:Ee.dataType},inferredType:{name:Ee.inferredType},name:{name:Ee.name},operators:{name:Ee.operators},parameters:{name:Ee.parameters,defaultValue:[]},returnType:{name:Ee.returnType,referenceType:U.$type}},superTypes:[H.$type]},InfixRuleOperatorList:{name:Oe.$type,properties:{associativity:{name:Oe.associativity},operators:{name:Oe.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:ke.$type,properties:{precedences:{name:ke.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:Ae.$type,properties:{attributes:{name:Ae.attributes,defaultValue:[]},name:{name:Ae.name},superTypes:{name:Ae.superTypes,defaultValue:[],referenceType:U.$type}},superTypes:[U.$type]},Keyword:{name:Me.$type,properties:{cardinality:{name:Me.cardinality},predicate:{name:Me.predicate},value:{name:Me.value}},superTypes:[B.$type]},NamedArgument:{name:Pe.$type,properties:{calledByName:{name:Pe.calledByName,defaultValue:!1},parameter:{name:Pe.parameter,referenceType:Be.$type},value:{name:Pe.value}},superTypes:[]},NegatedToken:{name:Fe.$type,properties:{cardinality:{name:Fe.cardinality},lookahead:{name:Fe.lookahead},parenthesized:{name:Fe.parenthesized,defaultValue:!1},terminal:{name:Fe.terminal}},superTypes:[rt.$type]},Negation:{name:Le.$type,properties:{value:{name:Le.value}},superTypes:[de.$type]},NumberLiteral:{name:ze.$type,properties:{value:{name:ze.value}},superTypes:[vt.$type]},Parameter:{name:Be.$type,properties:{name:{name:Be.name}},superTypes:[]},ParameterReference:{name:Ve.$type,properties:{parameter:{name:Ve.parameter,referenceType:Be.$type}},superTypes:[de.$type]},ParserRule:{name:Ue.$type,properties:{dataType:{name:Ue.dataType},definition:{name:Ue.definition},entry:{name:Ue.entry,defaultValue:!1},fragment:{name:Ue.fragment,defaultValue:!1},inferredType:{name:Ue.inferredType},name:{name:Ue.name},parameters:{name:Ue.parameters,defaultValue:[]},returnType:{name:Ue.returnType,referenceType:U.$type}},superTypes:[H.$type]},ReferenceType:{name:Ge.$type,properties:{isMulti:{name:Ge.isMulti,defaultValue:!1},referenceType:{name:Ge.referenceType}},superTypes:[pt.$type]},RegexToken:{name:Ke.$type,properties:{cardinality:{name:Ke.cardinality},lookahead:{name:Ke.lookahead},parenthesized:{name:Ke.parenthesized,defaultValue:!1},regex:{name:Ke.regex}},superTypes:[rt.$type]},ReturnType:{name:Je.$type,properties:{name:{name:Je.name}},superTypes:[]},RuleCall:{name:Xe.$type,properties:{arguments:{name:Xe.arguments,defaultValue:[]},cardinality:{name:Xe.cardinality},predicate:{name:Xe.predicate},rule:{name:Xe.rule,referenceType:te.$type}},superTypes:[B.$type]},SimpleType:{name:Qe.$type,properties:{primitiveType:{name:Qe.primitiveType},stringType:{name:Qe.stringType},typeRef:{name:Qe.typeRef,referenceType:U.$type}},superTypes:[pt.$type]},StringLiteral:{name:et.$type,properties:{value:{name:et.value}},superTypes:[vt.$type]},TerminalAlternatives:{name:tt.$type,properties:{cardinality:{name:tt.cardinality},elements:{name:tt.elements,defaultValue:[]},lookahead:{name:tt.lookahead},parenthesized:{name:tt.parenthesized,defaultValue:!1}},superTypes:[rt.$type]},TerminalElement:{name:rt.$type,properties:{cardinality:{name:rt.cardinality},lookahead:{name:rt.lookahead},parenthesized:{name:rt.parenthesized,defaultValue:!1}},superTypes:[B.$type]},TerminalGroup:{name:it.$type,properties:{cardinality:{name:it.cardinality},elements:{name:it.elements,defaultValue:[]},lookahead:{name:it.lookahead},parenthesized:{name:it.parenthesized,defaultValue:!1}},superTypes:[rt.$type]},TerminalRule:{name:ot.$type,properties:{definition:{name:ot.definition},fragment:{name:ot.fragment,defaultValue:!1},hidden:{name:ot.hidden,defaultValue:!1},name:{name:ot.name},type:{name:ot.type}},superTypes:[te.$type]},TerminalRuleCall:{name:ct.$type,properties:{cardinality:{name:ct.cardinality},lookahead:{name:ct.lookahead},parenthesized:{name:ct.parenthesized,defaultValue:!1},rule:{name:ct.rule,referenceType:ot.$type}},superTypes:[rt.$type]},Type:{name:ut.$type,properties:{name:{name:ut.name},type:{name:ut.type}},superTypes:[U.$type]},TypeAttribute:{name:ft.$type,properties:{defaultValue:{name:ft.defaultValue},isOptional:{name:ft.isOptional,defaultValue:!1},name:{name:ft.name},type:{name:ft.type}},superTypes:[]},TypeDefinition:{name:pt.$type,properties:{},superTypes:[]},UnionType:{name:mt.$type,properties:{types:{name:mt.types,defaultValue:[]}},superTypes:[pt.$type]},UnorderedGroup:{name:ht.$type,properties:{cardinality:{name:ht.cardinality},elements:{name:ht.elements,defaultValue:[]}},superTypes:[B.$type]},UntilToken:{name:_t.$type,properties:{cardinality:{name:_t.cardinality},lookahead:{name:_t.lookahead},parenthesized:{name:_t.parenthesized,defaultValue:!1},terminal:{name:_t.terminal}},superTypes:[rt.$type]},ValueLiteral:{name:vt.$type,properties:{},superTypes:[]},Wildcard:{name:yt.$type,properties:{cardinality:{name:yt.cardinality},lookahead:{name:yt.lookahead},parenthesized:{name:yt.parenthesized,defaultValue:!1}},superTypes:[rt.$type]}}}},St=new xt;function Ct(e){return new E(e,e=>_(e)?e.content:[],{includeRoot:!0})}function tee(e,t){for(;e.container;)if(e=e.container,e===t)return!0;return!1}function wt(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function Tt(e){if(!e)return;let{offset:t,end:n,range:r}=e;return{range:r,offset:t,end:n,length:n-t}}var Et;(function(e){e[e.Before=0]=`Before`,e[e.After=1]=`After`,e[e.OverlapFront=2]=`OverlapFront`,e[e.OverlapBack=3]=`OverlapBack`,e[e.Inside=4]=`Inside`,e[e.Outside=5]=`Outside`})(Et||={});function Dt(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<=t.start.character)return Et.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return Et.After;let n=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,r=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return n&&r?Et.Inside:n?Et.OverlapBack:r?Et.OverlapFront:Et.Outside}function Ot(e,t){return Dt(e,t)>Et.After}var nee=/^[\w\p{L}]$/u;function ree(e,t){if(e){let n=iee(e,!0);if(n&&kt(n,t))return n;if(y(e)){let n=e.content.findIndex(e=>!e.hidden);for(let r=n-1;r>=0;r--){let n=e.content[r];if(kt(n,t))return n}}}}function kt(e,t){return v(e)&&t.includes(e.tokenType.name)}function iee(e,t=!0){for(;e.container;){let n=e.container,r=n.content.indexOf(e);for(;r>0;){r--;let e=n.content[r];if(t||!e.hidden)return e}e=n}}var At=class extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}};function jt(e,t=`Error: Got unexpected value.`){throw Error(t)}function Mt(e){return e.charCodeAt(0)}function Nt(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function Pt(e,t){if(e[t]===!0)throw`duplicate flag `+t;e[t],e[t]=!0}function Ft(e){if(e===void 0)throw Error(`Internal Error - Should never get here!`);return!0}function It(){throw Error(`Internal Error - Should never get here!`)}function Lt(e){return e.type===`Character`}var Rt=[];for(let e=Mt(`0`);e<=Mt(`9`);e++)Rt.push(e);var zt=[Mt(`_`)].concat(Rt);for(let e=Mt(`a`);e<=Mt(`z`);e++)zt.push(e);for(let e=Mt(`A`);e<=Mt(`Z`);e++)zt.push(e);var Bt=[Mt(` `),Mt(`\f`),Mt(`
|
|
2
2
|
`),Mt(`\r`),Mt(` `),Mt(`\v`),Mt(` `),Mt(`\xA0`),Mt(` `),Mt(` `),Mt(` `),Mt(` `),Mt(` `),Mt(` `),Mt(` `),Mt(` `),Mt(` `),Mt(` `),Mt(` `),Mt(` `),Mt(`\u2028`),Mt(`\u2029`),Mt(` `),Mt(` `),Mt(` `),Mt(``)],aee=/[0-9a-fA-F]/,Vt=/[0-9]/,oee=/[1-9]/,Ht=class{constructor(){this.idx=0,this.input=``,this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar(`/`);let t=this.disjunction();this.consumeChar(`/`);let n={type:`Flags`,loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case`g`:Pt(n,`global`);break;case`i`:Pt(n,`ignoreCase`);break;case`m`:Pt(n,`multiLine`);break;case`u`:Pt(n,`unicode`);break;case`y`:Pt(n,`sticky`);break}if(this.idx!==this.input.length)throw Error(`Redundant input: `+this.input.substring(this.idx));return{type:`Pattern`,flags:n,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()===`|`;)this.consumeChar(`|`),e.push(this.alternative());return{type:`Disjunction`,value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:`Alternative`,value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case`^`:return{type:`StartAnchor`,loc:this.loc(e)};case`$`:return{type:`EndAnchor`,loc:this.loc(e)};case`\\`:switch(this.popChar()){case`b`:return{type:`WordBoundary`,loc:this.loc(e)};case`B`:return{type:`NonWordBoundary`,loc:this.loc(e)}}throw Error(`Invalid Assertion Escape`);case`(`:this.consumeChar(`?`);let t;switch(this.popChar()){case`=`:t=`Lookahead`;break;case`!`:t=`NegativeLookahead`;break;case`<`:switch(this.popChar()){case`=`:t=`Lookbehind`;break;case`!`:t=`NegativeLookbehind`}break}Ft(t);let n=this.disjunction();return this.consumeChar(`)`),{type:t,value:n,loc:this.loc(e)}}return It()}quantifier(e=!1){let t,n=this.idx;switch(this.popChar()){case`*`:t={atLeast:0,atMost:1/0};break;case`+`:t={atLeast:1,atMost:1/0};break;case`?`:t={atLeast:0,atMost:1};break;case`{`:let n=this.integerIncludingZero();switch(this.popChar()){case`}`:t={atLeast:n,atMost:n};break;case`,`:let e;this.isDigit()?(e=this.integerIncludingZero(),t={atLeast:n,atMost:e}):t={atLeast:n,atMost:1/0},this.consumeChar(`}`);break}if(e===!0&&t===void 0)return;Ft(t);break}if(!(e===!0&&t===void 0)&&Ft(t))return this.peekChar(0)===`?`?(this.consumeChar(`?`),t.greedy=!1):t.greedy=!0,t.type=`Quantifier`,t.loc=this.loc(n),t}atom(){let e,t=this.idx;switch(this.peekChar()){case`.`:e=this.dotAll();break;case`\\`:e=this.atomEscape();break;case`[`:e=this.characterClass();break;case`(`:e=this.group();break}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Ft(e)?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):It()}dotAll(){return this.consumeChar(`.`),{type:`Set`,complement:!0,value:[Mt(`
|
|
3
3
|
`),Mt(`\r`),Mt(`\u2028`),Mt(`\u2029`)]}}atomEscape(){switch(this.consumeChar(`\\`),this.peekChar()){case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:return this.decimalEscapeAtom();case`d`:case`D`:case`s`:case`S`:case`w`:case`W`:return this.characterClassEscape();case`f`:case`n`:case`r`:case`t`:case`v`:return this.controlEscapeAtom();case`c`:return this.controlLetterEscapeAtom();case`0`:return this.nulCharacterAtom();case`x`:return this.hexEscapeSequenceAtom();case`u`:return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:`GroupBackReference`,value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case`d`:e=Rt;break;case`D`:e=Rt,t=!0;break;case`s`:e=Bt;break;case`S`:e=Bt,t=!0;break;case`w`:e=zt;break;case`W`:e=zt,t=!0;break}return Ft(e)?{type:`Set`,value:e,complement:t}:It()}controlEscapeAtom(){let e;switch(this.popChar()){case`f`:e=Mt(`\f`);break;case`n`:e=Mt(`
|
|
4
4
|
`);break;case`r`:e=Mt(`\r`);break;case`t`:e=Mt(` `);break;case`v`:e=Mt(`\v`);break}return Ft(e)?{type:`Character`,value:e}:It()}controlLetterEscapeAtom(){this.consumeChar(`c`);let e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error(`Invalid `);return{type:`Character`,value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar(`0`),{type:`Character`,value:Mt(`\0`)}}hexEscapeSequenceAtom(){return this.consumeChar(`x`),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar(`u`),this.parseHexDigits(4)}identityEscapeAtom(){return{type:`Character`,value:Mt(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case`
|
|
@@ -240,7 +240,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
240
240
|
`))}Y(Rk,`preprocessMarkdown`);function zk(e){return e.split(/\\n|\n|<br\s*\/?>/gi).map(e=>e.trim().match(/<[^>]+>|[^\s<>]+/g)?.map(e=>({content:e,type:`normal`}))??[])}Y(zk,`nonMarkdownToLines`);function Bk(e,t={}){let n=Rk(e,t),r=Ak.lexer(n),i=[[]],a=0;function o(e,t=`normal`){e.type===`text`?e.text.split(`
|
|
241
241
|
`).forEach((e,n)=>{n!==0&&(a++,i.push([])),e.split(` `).forEach(e=>{e=e.replace(/'/g,`'`),e&&i[a].push({content:e,type:t})})}):e.type===`strong`||e.type===`em`?e.tokens.forEach(t=>{o(t,e.type)}):e.type===`html`&&i[a].push({content:e.text,type:`normal`})}return Y(o,`processNode`),r.forEach(e=>{e.type===`paragraph`?e.tokens?.forEach(e=>{o(e)}):e.type===`html`?i[a].push({content:e.text,type:`normal`}):i[a].push({content:e.raw,type:`normal`})}),i}Y(Bk,`markdownToLines`);function Vk(e){return e?`<p>${e.replace(/\\n|\n/g,`<br />`)}</p>`:``}Y(Vk,`nonMarkdownToHTML`);function Hk(e,{markdownAutoWrap:t}={}){let n=Ak.lexer(e);function r(e){return e.type===`text`?t===!1?e.text.replace(/\n */g,`<br/>`).replace(/ /g,` `):e.text.replace(/\n */g,`<br/>`):e.type===`strong`?`<strong>${e.tokens?.map(r).join(``)}</strong>`:e.type===`em`?`<em>${e.tokens?.map(r).join(``)}</em>`:e.type===`paragraph`?`<p>${e.tokens?.map(r).join(``)}</p>`:e.type===`space`?``:e.type===`html`?`${e.text}`:e.type===`escape`?e.text:(X.warn(`Unsupported markdown: ${e.type}`),e.raw)}return Y(r,`output`),n.map(r).join(``)}Y(Hk,`markdownToHTML`);function Uk(e){return Intl.Segmenter?[...new Intl.Segmenter().segment(e)].map(e=>e.segment):[...e]}Y(Uk,`splitTextToChars`);function Wk(e,t){return Gk(e,[],Uk(t.content),t.type)}Y(Wk,`splitWordToFitWidth`);function Gk(e,t,n,r){if(n.length===0)return[{content:t.join(``),type:r},{content:``,type:r}];let[i,...a]=n,o=[...t,i];return e([{content:o.join(``),type:r}])?Gk(e,o,a,r):(t.length===0&&i&&(t.push(i),n.shift()),[{content:t.join(``),type:r},{content:n.join(``),type:r}])}Y(Gk,`splitWordToFitWidthRecursion`);function Kk(e,t){if(e.some(({content:e})=>e.includes(`
|
|
242
242
|
`)))throw Error(`splitLineToFitWidth does not support newlines in the line`);return qk(e,t)}Y(Kk,`splitLineToFitWidth`);function qk(e,t,n=[],r=[]){if(e.length===0)return r.length>0&&n.push(r),n.length>0?n:[];let i=``;e[0].content===` `&&(i=` `,e.shift());let a=e.shift()??{content:` `,type:`normal`},o=[...r];if(i!==``&&o.push({content:i,type:`normal`}),o.push(a),t(o))return qk(e,t,n,o);if(r.length>0)n.push(r),e.unshift(a);else if(a.content){let[r,i]=Wk(t,a);n.push([r]),i.content&&e.unshift(i)}return qk(e,t,n)}Y(qk,`splitLineToFitWidthRecursion`);function Jk(e,t){t&&e.attr(`style`,t)}Y(Jk,`applyStyle`);var Yk=16384;async function Xk(e,t,n,r,i=!1,a=Sv()){let o=e.append(`foreignObject`);o.attr(`width`,`${Math.min(10*n,Yk)}px`),o.attr(`height`,`${Math.min(10*n,Yk)}px`);let s=o.append(`xhtml:div`),l=Bv(t.label)?await Hv(t.label.replace(Uv.lineBreakRegex,`
|
|
243
|
-
`),a):Nv(t.label,a),u=t.isNode?`nodeLabel`:`edgeLabel`,d=s.append(`span`);d.html(l),Jk(d,t.labelStyle),d.attr(`class`,`${u} ${r}`),Jk(s,t.labelStyle),s.style(`display`,`table-cell`),s.style(`white-space`,`nowrap`),s.style(`line-height`,`1.5`),n!==1/0&&(s.style(`max-width`,n+`px`),s.style(`text-align`,`center`)),s.attr(`xmlns`,`http://www.w3.org/1999/xhtml`),i&&s.attr(`class`,`labelBkg`);let f=s.node().getBoundingClientRect();return f.width===n&&(s.style(`display`,`table`),s.style(`white-space`,`break-spaces`),s.style(`width`,n+`px`),f=s.node().getBoundingClientRect()),o.node()}Y(Xk,`addHtmlSpan`);function Zk(e,t,n,r=!1){let i=e.append(`tspan`).attr(`class`,`text-outer-tspan`).attr(`x`,0).attr(`y`,t*n-.1+`em`).attr(`dy`,n+`em`);return r&&i.attr(`text-anchor`,`middle`),i}Y(Zk,`createTspan`);function Qk(e,t,n){let r=e.append(`text`),i=Zk(r,1,t);tA(i,n);let a=i.node().getComputedTextLength();return r.remove(),a}Y(Qk,`computeWidthOfText`);function $k(e,t,n){let r=e.append(`text`),i=Zk(r,1,t);tA(i,[{content:n,type:`normal`}]);let a=i.node()?.getBoundingClientRect();return a&&r.remove(),a}Y($k,`computeDimensionOfText`);function eA(e,t,n,r=!1,i=!1){let a=1.1,o=t.append(`g`),s=o.insert(`rect`).attr(`class`,`background`).attr(`style`,`stroke: none`),l=o.append(`text`).attr(`y`,`-10.1`);i&&l.attr(`text-anchor`,`middle`);let u=0;for(let t of n){let n=Y(t=>Qk(o,a,t)<=e,`checkWidth`),r=n(t)?[t]:Kk(t,n);for(let e of r)tA(Zk(l,u,a,i),e),u++}if(r){let e=l.node().getBBox();return s.attr(`x`,e.x-2).attr(`y`,e.y-2).attr(`width`,e.width+4).attr(`height`,e.height+4),o.node()}else return l.node()}Y(eA,`createFormattedText`);function tA(e,t){e.text(``),t.forEach((t,n)=>{let r=e.append(`tspan`).attr(`font-style`,t.type===`em`?`italic`:`normal`).attr(`class`,`text-inner-tspan`).attr(`font-weight`,t.type===`strong`?`bold`:`normal`);n===0?r.text(t.content):r.text(` `+t.content)})}Y(tA,`updateTextContentAndStyles`);async function nA(e,t={}){let n=[];e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,(e,r,i)=>(n.push((async()=>{let n=`${r}:${i}`;return await Npe(n)?await Lk(n,void 0,{class:`label-icon`}):`<i class='${Nv(e,t).replace(`:`,` `)}'></i>`})()),e));let r=await Promise.all(n);return e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,()=>r.shift()??``)}Y(nA,`replaceIconSubstring`);var rA=Y(async(e,t=``,{style:n=``,isTitle:r=!1,classes:i=``,useHtmlLabels:a=!0,markdown:o=!0,isNode:s=!0,width:l=200,addSvgBackground:u=!1}={},d)=>{if(X.debug(`XYZ createText`,t,n,r,i,a,s,`addSvgBackground: `,u),a){let r=await nA(OO(o?Hk(t,d):Vk(t)),d),a=t.replace(/\\\\/g,`\\`);return await Xk(e,{isNode:s,label:Bv(t)?a:r,labelStyle:n.replace(`fill:`,`color:`)},l,i,u,d)}else{let i=t.replace(/<br\s*\/?>/g,`<br/>`),a=eA(l,e,o?Bk(i.replace(`<br>`,`<br/>`),d):zk(i),t?u:!1,!s);if(s){/stroke:/.exec(n)&&(n=n.replace(`stroke:`,`lineColor:`));let e=n.replace(/stroke:[^;]+;?/g,``).replace(/stroke-width:[^;]+;?/g,``).replace(/fill:[^;]+;?/g,``).replace(/color:/g,`fill:`);bx(a).attr(`style`,e)}else{let e=n.replace(/stroke:[^;]+;?/g,``).replace(/stroke-width:[^;]+;?/g,``).replace(/fill:[^;]+;?/g,``).replace(/background:/g,`fill:`);bx(a).select(`rect`).attr(`style`,e.replace(/background:/g,`fill:`));let t=n.replace(/stroke:[^;]+;?/g,``).replace(/stroke-width:[^;]+;?/g,``).replace(/fill:[^;]+;?/g,``).replace(/color:/g,`fill:`);bx(a).select(`text`).attr(`style`,t)}return r?bx(a).selectAll(`tspan.text-outer-tspan`).classed(`title-row`,!0):bx(a).selectAll(`tspan.text-outer-tspan`).classed(`row`,!0),a}},`createText`);function iA(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}Y(iA,`populateCommonDb`);var aA={},Ppe={info:Ih(async()=>{let{createInfoServices:e}=await u(async()=>{let{createInfoServices:e}=await import(`./info-3K5VOQVL-
|
|
243
|
+
`),a):Nv(t.label,a),u=t.isNode?`nodeLabel`:`edgeLabel`,d=s.append(`span`);d.html(l),Jk(d,t.labelStyle),d.attr(`class`,`${u} ${r}`),Jk(s,t.labelStyle),s.style(`display`,`table-cell`),s.style(`white-space`,`nowrap`),s.style(`line-height`,`1.5`),n!==1/0&&(s.style(`max-width`,n+`px`),s.style(`text-align`,`center`)),s.attr(`xmlns`,`http://www.w3.org/1999/xhtml`),i&&s.attr(`class`,`labelBkg`);let f=s.node().getBoundingClientRect();return f.width===n&&(s.style(`display`,`table`),s.style(`white-space`,`break-spaces`),s.style(`width`,n+`px`),f=s.node().getBoundingClientRect()),o.node()}Y(Xk,`addHtmlSpan`);function Zk(e,t,n,r=!1){let i=e.append(`tspan`).attr(`class`,`text-outer-tspan`).attr(`x`,0).attr(`y`,t*n-.1+`em`).attr(`dy`,n+`em`);return r&&i.attr(`text-anchor`,`middle`),i}Y(Zk,`createTspan`);function Qk(e,t,n){let r=e.append(`text`),i=Zk(r,1,t);tA(i,n);let a=i.node().getComputedTextLength();return r.remove(),a}Y(Qk,`computeWidthOfText`);function $k(e,t,n){let r=e.append(`text`),i=Zk(r,1,t);tA(i,[{content:n,type:`normal`}]);let a=i.node()?.getBoundingClientRect();return a&&r.remove(),a}Y($k,`computeDimensionOfText`);function eA(e,t,n,r=!1,i=!1){let a=1.1,o=t.append(`g`),s=o.insert(`rect`).attr(`class`,`background`).attr(`style`,`stroke: none`),l=o.append(`text`).attr(`y`,`-10.1`);i&&l.attr(`text-anchor`,`middle`);let u=0;for(let t of n){let n=Y(t=>Qk(o,a,t)<=e,`checkWidth`),r=n(t)?[t]:Kk(t,n);for(let e of r)tA(Zk(l,u,a,i),e),u++}if(r){let e=l.node().getBBox();return s.attr(`x`,e.x-2).attr(`y`,e.y-2).attr(`width`,e.width+4).attr(`height`,e.height+4),o.node()}else return l.node()}Y(eA,`createFormattedText`);function tA(e,t){e.text(``),t.forEach((t,n)=>{let r=e.append(`tspan`).attr(`font-style`,t.type===`em`?`italic`:`normal`).attr(`class`,`text-inner-tspan`).attr(`font-weight`,t.type===`strong`?`bold`:`normal`);n===0?r.text(t.content):r.text(` `+t.content)})}Y(tA,`updateTextContentAndStyles`);async function nA(e,t={}){let n=[];e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,(e,r,i)=>(n.push((async()=>{let n=`${r}:${i}`;return await Npe(n)?await Lk(n,void 0,{class:`label-icon`}):`<i class='${Nv(e,t).replace(`:`,` `)}'></i>`})()),e));let r=await Promise.all(n);return e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,()=>r.shift()??``)}Y(nA,`replaceIconSubstring`);var rA=Y(async(e,t=``,{style:n=``,isTitle:r=!1,classes:i=``,useHtmlLabels:a=!0,markdown:o=!0,isNode:s=!0,width:l=200,addSvgBackground:u=!1}={},d)=>{if(X.debug(`XYZ createText`,t,n,r,i,a,s,`addSvgBackground: `,u),a){let r=await nA(OO(o?Hk(t,d):Vk(t)),d),a=t.replace(/\\\\/g,`\\`);return await Xk(e,{isNode:s,label:Bv(t)?a:r,labelStyle:n.replace(`fill:`,`color:`)},l,i,u,d)}else{let i=t.replace(/<br\s*\/?>/g,`<br/>`),a=eA(l,e,o?Bk(i.replace(`<br>`,`<br/>`),d):zk(i),t?u:!1,!s);if(s){/stroke:/.exec(n)&&(n=n.replace(`stroke:`,`lineColor:`));let e=n.replace(/stroke:[^;]+;?/g,``).replace(/stroke-width:[^;]+;?/g,``).replace(/fill:[^;]+;?/g,``).replace(/color:/g,`fill:`);bx(a).attr(`style`,e)}else{let e=n.replace(/stroke:[^;]+;?/g,``).replace(/stroke-width:[^;]+;?/g,``).replace(/fill:[^;]+;?/g,``).replace(/background:/g,`fill:`);bx(a).select(`rect`).attr(`style`,e.replace(/background:/g,`fill:`));let t=n.replace(/stroke:[^;]+;?/g,``).replace(/stroke-width:[^;]+;?/g,``).replace(/fill:[^;]+;?/g,``).replace(/color:/g,`fill:`);bx(a).select(`text`).attr(`style`,t)}return r?bx(a).selectAll(`tspan.text-outer-tspan`).classed(`title-row`,!0):bx(a).selectAll(`tspan.text-outer-tspan`).classed(`row`,!0),a}},`createText`);function iA(e,t){e.accDescr&&t.setAccDescription?.(e.accDescr),e.accTitle&&t.setAccTitle?.(e.accTitle),e.title&&t.setDiagramTitle?.(e.title)}Y(iA,`populateCommonDb`);var aA={},Ppe={info:Ih(async()=>{let{createInfoServices:e}=await u(async()=>{let{createInfoServices:e}=await import(`./info-3K5VOQVL-fJy9dGkV.js`);return{createInfoServices:e}},[]);aA.info=e().Info.parser.LangiumParser},`info`),packet:Ih(async()=>{let{createPacketServices:e}=await u(async()=>{let{createPacketServices:e}=await import(`./packet-RMMSAZCW-DMi06dVb.js`);return{createPacketServices:e}},[]);aA.packet=e().Packet.parser.LangiumParser},`packet`),pie:Ih(async()=>{let{createPieServices:e}=await u(async()=>{let{createPieServices:e}=await import(`./pie-UPGHQEXC-BECm43s6.js`);return{createPieServices:e}},[]);aA.pie=e().Pie.parser.LangiumParser},`pie`),architecture:Ih(async()=>{let{createArchitectureServices:e}=await u(async()=>{let{createArchitectureServices:e}=await import(`./architecture-PBZL5I3N-DVlAZGlv.js`);return{createArchitectureServices:e}},[]);aA.architecture=e().Architecture.parser.LangiumParser},`architecture`),gitGraph:Ih(async()=>{let{createGitGraphServices:e}=await u(async()=>{let{createGitGraphServices:e}=await import(`./gitGraph-HDMCJU4V-b3n-Tgk6.js`);return{createGitGraphServices:e}},[]);aA.gitGraph=e().GitGraph.parser.LangiumParser},`gitGraph`),radar:Ih(async()=>{let{createRadarServices:e}=await u(async()=>{let{createRadarServices:e}=await import(`./radar-KQ55EAFF-BwqCptkx.js`);return{createRadarServices:e}},[]);aA.radar=e().Radar.parser.LangiumParser},`radar`),treemap:Ih(async()=>{let{createTreemapServices:e}=await u(async()=>{let{createTreemapServices:e}=await import(`./treemap-KZPCXAKY-Da7U3Olf.js`);return{createTreemapServices:e}},[]);aA.treemap=e().Treemap.parser.LangiumParser},`treemap`)};async function oA(e,t){let n=Ppe[e];if(!n)throw Error(`Unknown diagram type: ${e}`);aA[e]||await n();let r=aA[e].parse(t);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new Fpe(r);return r.value}Ih(oA,`parse`);var Fpe=class extends Error{constructor(e){let t=e.lexerErrors.map(e=>`Lexer error on line ${e.line!==void 0&&!isNaN(e.line)?e.line:`?`}, column ${e.column!==void 0&&!isNaN(e.column)?e.column:`?`}: ${e.message}`).join(`
|
|
244
244
|
`),n=e.parserErrors.map(e=>`Parse error on line ${e.token.startLine!==void 0&&!isNaN(e.token.startLine)?e.token.startLine:`?`}, column ${e.token.startColumn!==void 0&&!isNaN(e.token.startColumn)?e.token.startColumn:`?`}: ${e.message}`).join(`
|
|
245
245
|
`);super(`Parsing failed: ${t} ${n}`),this.result=e}static{Ih(this,`MermaidParseError`)}};function sA(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Ipe(e){if(Array.isArray(e))return e}function Lpe(e){if(Array.isArray(e))return sA(e)}function cA(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function Rpe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,mA(r.key),r)}}function lA(e,t,n){return t&&Rpe(e.prototype,t),Object.defineProperty(e,`prototype`,{writable:!1}),e}function uA(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=gA(e))||t){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
246
246
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||n.return==null||n.return()}finally{if(s)throw a}}}}function dA(e,t,n){return(t=mA(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zpe(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function Bpe(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],l=!0,u=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){u=!0,i=e}finally{try{if(!l&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function Vpe(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as e}from"./vendor-markdown-0Mxgxy0L.js";import{t}from"./file-exclamation-point-Baz81y5z.js";import"./api-client-Dvzcc_EO.js";import{G as n}from"./index-
|
|
1
|
+
import{b as e}from"./vendor-markdown-0Mxgxy0L.js";import{t}from"./file-exclamation-point-Baz81y5z.js";import"./api-client-Dvzcc_EO.js";import{G as n}from"./index-zP-OjEml.js";import{t as r}from"./use-blob-url-e9uTXjv5.js";var i=e();function a({filePath:e,projectName:a}){let{blobUrl:o,error:s}=r(e,a);return s?(0,i.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-text-secondary`,children:[(0,i.jsx)(t,{className:`size-10 text-text-subtle`}),(0,i.jsx)(`p`,{className:`text-sm`,children:`Failed to load video.`})]}):o?(0,i.jsx)(`div`,{className:`flex items-center justify-center h-full p-4 bg-surface overflow-auto`,children:(0,i.jsx)(`video`,{src:o,controls:!0,className:`max-w-full max-h-full`})}):(0,i.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,i.jsx)(n,{className:`size-5 animate-spin text-text-subtle`})})}export{a as VideoPreview};
|
package/dist/web/index.html
CHANGED
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
40
40
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
41
41
|
<link href="https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;600;700&family=Geist:wght@400;500;600;700&display=swap" rel="stylesheet" />
|
|
42
|
-
<script type="module" crossorigin src="/assets/index-
|
|
42
|
+
<script type="module" crossorigin src="/assets/index-zP-OjEml.js"></script>
|
|
43
43
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-FhOqtrmT.js">
|
|
44
|
-
<link rel="modulepreload" crossorigin href="/assets/vendor-mermaid-
|
|
44
|
+
<link rel="modulepreload" crossorigin href="/assets/vendor-mermaid-DsfY6y4f.js">
|
|
45
45
|
<link rel="modulepreload" crossorigin href="/assets/vendor-markdown-0Mxgxy0L.js">
|
|
46
46
|
<link rel="modulepreload" crossorigin href="/assets/vendor-ui-B-89Uj8i.js">
|
|
47
47
|
<link rel="modulepreload" crossorigin href="/assets/utils-CTg5uAYR.js">
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
<link rel="modulepreload" crossorigin href="/assets/input-ozrR2DAV.js">
|
|
51
51
|
<link rel="modulepreload" crossorigin href="/assets/react-GqWghJ-L.js">
|
|
52
52
|
<link rel="modulepreload" crossorigin href="/assets/api-client-Dvzcc_EO.js">
|
|
53
|
-
<link rel="modulepreload" crossorigin href="/assets/settings-store-
|
|
53
|
+
<link rel="modulepreload" crossorigin href="/assets/settings-store-Dvk8Lvwm.js">
|
|
54
54
|
<link rel="modulepreload" crossorigin href="/assets/scroll-area-7H-Q_k8c.js">
|
|
55
55
|
<link rel="modulepreload" crossorigin href="/assets/dist-CaKCIxem.js">
|
|
56
56
|
<link rel="modulepreload" crossorigin href="/assets/refresh-cw-LlbZDJpO.js">
|
package/dist/web/sw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
try{self[`workbox:core:7.3.0`]&&_()}catch{}var e=(e,...t)=>{let n=e;return t.length>0&&(n+=` :: ${JSON.stringify(t)}`),n},t=class extends Error{constructor(t,n){let r=e(t,n);super(r),this.name=t,this.details=n}},n={googleAnalytics:`googleAnalytics`,precache:`precache-v2`,prefix:`workbox`,runtime:`runtime`,suffix:typeof registration<`u`?registration.scope:``},r=e=>[n.prefix,e,n.suffix].filter(e=>e&&e.length>0).join(`-`),i=e=>{for(let t of Object.keys(n))e(t)},a={updateDetails:e=>{i(t=>{typeof e[t]==`string`&&(n[t]=e[t])})},getGoogleAnalyticsName:e=>e||r(n.googleAnalytics),getPrecacheName:e=>e||r(n.precache),getPrefix:()=>n.prefix,getRuntimeName:e=>e||r(n.runtime),getSuffix:()=>n.suffix};function o(e,t){let n=t();return e.waitUntil(n),n}try{self[`workbox:precaching:7.3.0`]&&_()}catch{}var s=`__WB_REVISION__`;function c(e){if(!e)throw new t(`add-to-cache-list-unexpected-type`,{entry:e});if(typeof e==`string`){let t=new URL(e,location.href);return{cacheKey:t.href,url:t.href}}let{revision:n,url:r}=e;if(!r)throw new t(`add-to-cache-list-unexpected-type`,{entry:e});if(!n){let e=new URL(r,location.href);return{cacheKey:e.href,url:e.href}}let i=new URL(r,location.href),a=new URL(r,location.href);return i.searchParams.set(s,n),{cacheKey:i.href,url:a.href}}var l=class{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type===`install`&&t&&t.originalRequest&&t.originalRequest instanceof Request){let e=t.originalRequest.url;n?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return n}}},u=class{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:e,params:t})=>{let n=t?.cacheKey||this._precacheController.getCacheKeyForURL(e.url);return n?new Request(n,{headers:e.headers}):e},this._precacheController=e}},d;function f(){if(d===void 0){let e=new Response(``);if(`body`in e)try{new Response(e.body),d=!0}catch{d=!1}d=!1}return d}async function p(e,n){let r=null;if(e.url&&(r=new URL(e.url).origin),r!==self.location.origin)throw new t(`cross-origin-copy-response`,{origin:r});let i=e.clone(),a={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=n?n(a):a,s=f()?i.body:await i.blob();return new Response(s,o)}var m=e=>new URL(String(e),location.href).href.replace(RegExp(`^${location.origin}`),``);function h(e,t){let n=new URL(e);for(let e of t)n.searchParams.delete(e);return n.href}async function g(e,t,n,r){let i=h(t.url,n);if(t.url===i)return e.match(t,r);let a=Object.assign(Object.assign({},r),{ignoreSearch:!0}),o=await e.keys(t,a);for(let t of o)if(i===h(t.url,n))return e.match(t,r)}var v=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}},y=new Set;async function b(){for(let e of y)await e()}function x(e){return new Promise(t=>setTimeout(t,e))}try{self[`workbox:strategies:7.3.0`]&&_()}catch{}function S(e){return typeof e==`string`?new Request(e):e}var C=class{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new v,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(let e of this._plugins)this._pluginStateMap.set(e,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){let{event:n}=this,r=S(e);if(r.mode===`navigate`&&n instanceof FetchEvent&&n.preloadResponse){let e=await n.preloadResponse;if(e)return e}let i=this.hasCallback(`fetchDidFail`)?r.clone():null;try{for(let e of this.iterateCallbacks(`requestWillFetch`))r=await e({request:r.clone(),event:n})}catch(e){if(e instanceof Error)throw new t(`plugin-error-request-will-fetch`,{thrownErrorMessage:e.message})}let a=r.clone();try{let e;e=await fetch(r,r.mode===`navigate`?void 0:this._strategy.fetchOptions);for(let t of this.iterateCallbacks(`fetchDidSucceed`))e=await t({event:n,request:a,response:e});return e}catch(e){throw i&&await this.runCallbacks(`fetchDidFail`,{error:e,event:n,originalRequest:i.clone(),request:a.clone()}),e}}async fetchAndCachePut(e){let t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){let t=S(e),n,{cacheName:r,matchOptions:i}=this._strategy,a=await this.getCacheKey(t,`read`),o=Object.assign(Object.assign({},i),{cacheName:r});n=await caches.match(a,o);for(let e of this.iterateCallbacks(`cachedResponseWillBeUsed`))n=await e({cacheName:r,matchOptions:i,cachedResponse:n,request:a,event:this.event})||void 0;return n}async cachePut(e,n){let r=S(e);await x(0);let i=await this.getCacheKey(r,`write`);if(!n)throw new t(`cache-put-with-no-response`,{url:m(i.url)});let a=await this._ensureResponseSafeToCache(n);if(!a)return!1;let{cacheName:o,matchOptions:s}=this._strategy,c=await self.caches.open(o),l=this.hasCallback(`cacheDidUpdate`),u=l?await g(c,i.clone(),[`__WB_REVISION__`],s):null;try{await c.put(i,l?a.clone():a)}catch(e){if(e instanceof Error)throw e.name===`QuotaExceededError`&&await b(),e}for(let e of this.iterateCallbacks(`cacheDidUpdate`))await e({cacheName:o,oldResponse:u,newResponse:a.clone(),request:i,event:this.event});return!0}async getCacheKey(e,t){let n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let r=e;for(let e of this.iterateCallbacks(`cacheKeyWillBeUsed`))r=S(await e({mode:t,request:r,event:this.event,params:this.params}));this._cacheKeys[n]=r}return this._cacheKeys[n]}hasCallback(e){for(let t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(let n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(let t of this._strategy.plugins)if(typeof t[e]==`function`){let n=this._pluginStateMap.get(t);yield r=>{let i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){let e=this._extendLifetimePromises.splice(0),t=(await Promise.allSettled(e)).find(e=>e.status===`rejected`);if(t)throw t.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(let e of this.iterateCallbacks(`cacheWillUpdate`))if(t=await e({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}},w=class{constructor(e={}){this.cacheName=a.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){let[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});let t=e.event,n=typeof e.request==`string`?new Request(e.request):e.request,r=`params`in e?e.params:void 0,i=new C(this,{event:t,request:n,params:r}),a=this._getResponse(i,n,t);return[a,this._awaitComplete(a,i,n,t)]}async _getResponse(e,n,r){await e.runCallbacks(`handlerWillStart`,{event:r,request:n});let i;try{if(i=await this._handle(n,e),!i||i.type===`error`)throw new t(`no-response`,{url:n.url})}catch(t){if(t instanceof Error){for(let a of e.iterateCallbacks(`handlerDidError`))if(i=await a({error:t,event:r,request:n}),i)break}if(!i)throw t}for(let t of e.iterateCallbacks(`handlerWillRespond`))i=await t({event:r,request:n,response:i});return i}async _awaitComplete(e,t,n,r){let i,a;try{i=await e}catch{}try{await t.runCallbacks(`handlerDidRespond`,{event:r,request:n,response:i}),await t.doneWaiting()}catch(e){e instanceof Error&&(a=e)}if(await t.runCallbacks(`handlerDidComplete`,{event:r,request:n,response:i,error:a}),t.destroy(),a)throw a}},T=class e extends w{constructor(t={}){t.cacheName=a.getPrecacheName(t.cacheName),super(t),this._fallbackToNetwork=t.fallbackToNetwork!==!1,this.plugins.push(e.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){return await t.cacheMatch(e)||(t.event&&t.event.type===`install`?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,n){let r,i=n.params||{};if(this._fallbackToNetwork){let t=i.integrity,a=e.integrity,o=!a||a===t;r=await n.fetch(new Request(e,{integrity:e.mode===`no-cors`?void 0:a||t})),t&&o&&e.mode!==`no-cors`&&(this._useDefaultCacheabilityPluginIfNeeded(),await n.cachePut(e,r.clone()))}else throw new t(`missing-precache-entry`,{cacheName:this.cacheName,url:e.url});return r}async _handleInstall(e,n){this._useDefaultCacheabilityPluginIfNeeded();let r=await n.fetch(e);if(!await n.cachePut(e,r.clone()))throw new t(`bad-precaching-response`,{url:e.url,status:r.status});return r}_useDefaultCacheabilityPluginIfNeeded(){let t=null,n=0;for(let[r,i]of this.plugins.entries())i!==e.copyRedirectedCacheableResponsesPlugin&&(i===e.defaultPrecacheCacheabilityPlugin&&(t=r),i.cacheWillUpdate&&n++);n===0?this.plugins.push(e.defaultPrecacheCacheabilityPlugin):n>1&&t!==null&&this.plugins.splice(t,1)}};T.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:e}){return!e||e.status>=400?null:e}},T.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:e}){return e.redirected?await p(e):e}};var E=class{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new T({cacheName:a.getPrecacheName(e),plugins:[...t,new u({precacheController:this})],fallbackToNetwork:n}),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),!0)}addToCacheList(e){let n=[];for(let r of e){typeof r==`string`?n.push(r):r&&r.revision===void 0&&n.push(r.url);let{cacheKey:e,url:i}=c(r),a=typeof r!=`string`&&r.revision?`reload`:`default`;if(this._urlsToCacheKeys.has(i)&&this._urlsToCacheKeys.get(i)!==e)throw new t(`add-to-cache-list-conflicting-entries`,{firstEntry:this._urlsToCacheKeys.get(i),secondEntry:e});if(typeof r!=`string`&&r.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==r.integrity)throw new t(`add-to-cache-list-conflicting-integrities`,{url:i});this._cacheKeysToIntegrities.set(e,r.integrity)}if(this._urlsToCacheKeys.set(i,e),this._urlsToCacheModes.set(i,a),n.length>0){let e=`Workbox is precaching URLs without revision info: ${n.join(`, `)}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(e)}}}install(e){return o(e,async()=>{let t=new l;this.strategy.plugins.push(t);for(let[t,n]of this._urlsToCacheKeys){let r=this._cacheKeysToIntegrities.get(n),i=this._urlsToCacheModes.get(t),a=new Request(t,{integrity:r,cache:i,credentials:`same-origin`});await Promise.all(this.strategy.handleAll({params:{cacheKey:n},request:a,event:e}))}let{updatedURLs:n,notUpdatedURLs:r}=t;return{updatedURLs:n,notUpdatedURLs:r}})}activate(e){return o(e,async()=>{let e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),n=new Set(this._urlsToCacheKeys.values()),r=[];for(let i of t)n.has(i.url)||(await e.delete(i),r.push(i.url));return{deletedURLs:r}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){let t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){let t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){let n=this.getCacheKeyForURL(e);if(!n)throw new t(`non-precached-url`,{url:e});return t=>(t.request=new Request(e),t.params=Object.assign({cacheKey:n},t.params),this.strategy.handle(t))}},D,O=()=>(D||=new E,D);try{self[`workbox:routing:7.3.0`]&&_()}catch{}var k=e=>e&&typeof e==`object`?e:{handle:e},A=class{constructor(e,t,n=`GET`){this.handler=k(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=k(e)}},j=class extends A{constructor(e,t,n){super(({url:t})=>{let n=e.exec(t.href);if(n&&!(t.origin!==location.origin&&n.index!==0))return n.slice(1)},t,n)}},M=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener(`fetch`,(e=>{let{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)}))}addCacheListener(){self.addEventListener(`message`,(e=>{if(e.data&&e.data.type===`CACHE_URLS`){let{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(t=>{typeof t==`string`&&(t=[t]);let n=new Request(...t);return this.handleRequest({request:n,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}}))}handleRequest({request:e,event:t}){let n=new URL(e.url,location.href);if(!n.protocol.startsWith(`http`))return;let r=n.origin===location.origin,{params:i,route:a}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:n}),o=a&&a.handler,s=e.method;if(!o&&this._defaultHandlerMap.has(s)&&(o=this._defaultHandlerMap.get(s)),!o)return;let c;try{c=o.handle({url:n,request:e,event:t,params:i})}catch(e){c=Promise.reject(e)}let l=a&&a.catchHandler;return c instanceof Promise&&(this._catchHandler||l)&&(c=c.catch(async r=>{if(l)try{return await l.handle({url:n,request:e,event:t,params:i})}catch(e){e instanceof Error&&(r=e)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw r})),c}findMatchingRoute({url:e,sameOrigin:t,request:n,event:r}){let i=this._routes.get(n.method)||[];for(let a of i){let i,o=a.match({url:e,sameOrigin:t,request:n,event:r});if(o)return i=o,(Array.isArray(i)&&i.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o==`boolean`)&&(i=void 0),{route:a,params:i}}return{}}setDefaultHandler(e,t=`GET`){this._defaultHandlerMap.set(t,k(e))}setCatchHandler(e){this._catchHandler=k(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 t(`unregister-route-but-not-found-with-method`,{method:e.method});let n=this._routes.get(e.method).indexOf(e);if(n>-1)this._routes.get(e.method).splice(n,1);else throw new t(`unregister-route-route-not-registered`)}},N,P=()=>(N||(N=new M,N.addFetchListener(),N.addCacheListener()),N);function F(e,n,r){let i;if(typeof e==`string`){let t=new URL(e,location.href);i=new A(({url:e})=>e.href===t.href,n,r)}else if(e instanceof RegExp)i=new j(e,n,r);else if(typeof e==`function`)i=new A(e,n,r);else if(e instanceof A)i=e;else throw new t(`unsupported-route-type`,{moduleName:`workbox-routing`,funcName:`registerRoute`,paramName:`capture`});return P().registerRoute(i),i}function I(e,t=[]){for(let n of[...e.searchParams.keys()])t.some(e=>e.test(n))&&e.searchParams.delete(n);return e}function*L(e,{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:n=`index.html`,cleanURLs:r=!0,urlManipulation:i}={}){let a=new URL(e,location.href);a.hash=``,yield a.href;let o=I(a,t);if(yield o.href,n&&o.pathname.endsWith(`/`)){let e=new URL(o.href);e.pathname+=n,yield e.href}if(r){let e=new URL(o.href);e.pathname+=`.html`,yield e.href}if(i){let e=i({url:a});for(let t of e)yield t.href}}var R=class extends A{constructor(e,t){super(({request:n})=>{let r=e.getURLsToCacheKeys();for(let i of L(n.url,t)){let t=r.get(i);if(t)return{cacheKey:t,integrity:e.getIntegrityForCacheKey(t)}}},e.strategy)}};function z(e){F(new R(O(),e))}function B(e){O().precache(e)}function V(e,t){B(e),z(t)}V([{"revision":"1872c500de691dce40960bb85481de07","url":"registerSW.js"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-192.svg"},{"revision":"754be60fd595e9b890e646393f190464","url":"index.html"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-512.svg"},{"revision":null,"url":"assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2"},{"revision":null,"url":"assets/KaTeX_AMS-Regular-BQhdFMY1.woff2"},{"revision":null,"url":"assets/use-blob-url-e9uTXjv5.js"},{"revision":null,"url":"assets/vendor-xterm-CU2c3f0A.js"},{"revision":null,"url":"assets/settings-store-B-OmHo3J.js"},{"revision":null,"url":"assets/KaTeX_Main-Regular-B22Nviop.woff2"},{"revision":null,"url":"assets/refresh-cw-LlbZDJpO.js"},{"revision":null,"url":"assets/pdf-preview-DvgyxJX7.js"},{"revision":null,"url":"assets/react-GqWghJ-L.js"},{"revision":null,"url":"assets/file-exclamation-point-Baz81y5z.js"},{"revision":null,"url":"assets/markdown-renderer-k3EA9XmF.js"},{"revision":null,"url":"assets/github.min-D2BCvnWf.css"},{"revision":null,"url":"assets/database-DOWH9-Vv.js"},{"revision":null,"url":"assets/postgres-viewer-C1w0tqQw.js"},{"revision":null,"url":"assets/katex-BuytEdO1.js"},{"revision":null,"url":"assets/conflict-editor-kaAZUFD5.js"},{"revision":null,"url":"assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2"},{"revision":null,"url":"assets/glide-data-grid-nthEL3fk.css"},{"revision":null,"url":"assets/pie-UPGHQEXC-cjpNfVG5.js"},{"revision":null,"url":"assets/code-editor-BofKrbM8.js"},{"revision":null,"url":"assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2"},{"revision":null,"url":"assets/packet-RMMSAZCW-DECxYTOi.js"},{"revision":null,"url":"assets/api-settings-D0_eiIYv.js"},{"revision":null,"url":"assets/vendor-markdown-0Mxgxy0L.js"},{"revision":null,"url":"assets/ai-settings-section-ysK_Eixc.js"},{"revision":null,"url":"assets/database-viewer-P38Vxzkx.js"},{"revision":null,"url":"assets/api-client-Dvzcc_EO.js"},{"revision":null,"url":"assets/KaTeX_Main-Italic-NWA7e6Wa.woff2"},{"revision":null,"url":"assets/data-grid-overlay-editor-BjjuE4-G.js"},{"revision":null,"url":"assets/video-preview-BU7tibc4.js"},{"revision":null,"url":"assets/csv-preview-7TsYBQI6.js"},{"revision":null,"url":"assets/tab-store-0rGchMXr.js"},{"revision":null,"url":"assets/port-forwarding-tab-CUkU6wac.js"},{"revision":null,"url":"assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2"},{"revision":null,"url":"assets/sql-query-editor-46hLU7MI.js"},{"revision":null,"url":"assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2"},{"revision":null,"url":"assets/sqlite-viewer-DrLi8P6y.js"},{"revision":null,"url":"assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2"},{"revision":null,"url":"assets/x-CG-_0yIW.js"},{"revision":null,"url":"assets/csv-parser-Dly5nqE1.js"},{"revision":null,"url":"assets/index-CpcqiQOx.js"},{"revision":null,"url":"assets/rolldown-runtime-FhOqtrmT.js"},{"revision":null,"url":"assets/data-grid-types-BTQHYBUh.js"},{"revision":null,"url":"assets/dist-DGSkE2Ml.js"},{"revision":null,"url":"assets/code-DGBecc50.js"},{"revision":null,"url":"assets/KaTeX_Math-Italic-t53AETM-.woff2"},{"revision":null,"url":"assets/github-dark-dimmed.min-BrpRStFV.css"},{"revision":null,"url":"assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2"},{"revision":null,"url":"assets/KaTeX_Script-Regular-D3wIWfF6.woff2"},{"revision":null,"url":"assets/glide-data-grid-D5D1N3L7.js"},{"revision":null,"url":"assets/text-wrap-BV-R4Vvy.js"},{"revision":null,"url":"assets/arrow-up-Rcw6_KKu.js"},{"revision":null,"url":"assets/vendor-mermaid-CCmA_6Y0.js"},{"revision":null,"url":"assets/file-store-BrbCNyLm.js"},{"revision":null,"url":"assets/sparkles-fWUT5Vzq.js"},{"revision":null,"url":"assets/dist-0kPgRaVx.js"},{"revision":null,"url":"assets/index-COOnLKGB.css"},{"revision":null,"url":"assets/treemap-KZPCXAKY-DRyb1eiw.js"},{"revision":null,"url":"assets/utils-CTg5uAYR.js"},{"revision":null,"url":"assets/KaTeX_Main-Bold-Cx986IdX.woff2"},{"revision":null,"url":"assets/KaTeX_Size2-Regular-Dy4dx90m.woff2"},{"revision":null,"url":"assets/chat-tab-lp_mVSG-.js"},{"revision":null,"url":"assets/image-preview-C9osjEPa.js"},{"revision":null,"url":"assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2"},{"revision":null,"url":"assets/KaTeX_Size1-Regular-mCD8mA8B.woff2"},{"revision":null,"url":"assets/esm-zjerHxpO.js"},{"revision":null,"url":"assets/use-monaco-theme-DgzxiZS5.js"},{"revision":null,"url":"assets/scroll-area-7H-Q_k8c.js"},{"revision":null,"url":"assets/architecture-PBZL5I3N-By4Nv3Gj.js"},{"revision":null,"url":"assets/createLucideIcon-BjHrJDVb.js"},{"revision":null,"url":"assets/radar-KQ55EAFF-Dnpi068b.js"},{"revision":null,"url":"assets/dist-CaKCIxem.js"},{"revision":null,"url":"assets/chevron-right-DnHIvvcy.js"},{"revision":null,"url":"assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2"},{"revision":null,"url":"assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2"},{"revision":null,"url":"assets/table-tf7pRkME.js"},{"revision":null,"url":"assets/gitGraph-HDMCJU4V-BLXEKVf1.js"},{"revision":null,"url":"assets/number-overlay-editor-BoRxunFN.js"},{"revision":null,"url":"assets/vendor-ui-B-89Uj8i.js"},{"revision":null,"url":"assets/terminal-tab-DqA3fEoQ.js"},{"revision":null,"url":"assets/extension-webview-5s2MUx38.js"},{"revision":null,"url":"assets/input-ozrR2DAV.js"},{"revision":null,"url":"assets/vendor-xterm-BrP-ENHg.css"},{"revision":null,"url":"assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2"},{"revision":null,"url":"assets/info-3K5VOQVL-CEkPcChg.js"},{"revision":null,"url":"assets/settings-tab-D0zKyVwg.js"},{"revision":null,"url":"assets/lib-DQHnkzGy.js"},{"revision":null,"url":"assets/keybindings-store-COxqSoML.js"},{"revision":null,"url":"assets/audio-preview-DISP-2AE.js"},{"revision":null,"url":"assets/diff-viewer-DlJfbgNJ.js"},{"revision":"d0f94ce046cf8cf09605ee7664dac557","url":"monacoeditorwork/html.worker.bundle.js"},{"revision":"a424156a79b9c1b907db93aa3180585a","url":"monacoeditorwork/editor.worker.bundle.js"},{"revision":"b3a7f967560c9816492a1567b3f7f0dc","url":"monacoeditorwork/css.worker.bundle.js"},{"revision":"a5d8a1acfc29c2a4c882a54ffc93def3","url":"monacoeditorwork/json.worker.bundle.js"},{"revision":"948e060affb598c339be40d69e1f6f9c","url":"monacoeditorwork/ts.worker.bundle.js"},{"revision":"79c8870653c8f419f2e3323085e1f4be","url":"manifest.webmanifest"}]),self.addEventListener(`push`,e=>{e.waitUntil(self.clients.matchAll({type:`window`,includeUncontrolled:!0}).then(t=>{if(t.some(e=>e.visibilityState===`visible`))return;let n=e.data?.json()??{title:`PPM`,body:`Chat completed`};return self.registration.showNotification(n.title,{body:n.body,icon:`/icon-192.png`,badge:`/icon-192.png`,tag:`ppm-chat-done`,silent:!1,data:{url:self.location.origin}})}))}),self.addEventListener(`notificationclick`,e=>{e.notification.close(),e.waitUntil(self.clients.matchAll({type:`window`,includeUncontrolled:!0}).then(t=>{for(let e of t)if(e.url.includes(self.location.origin)&&`focus`in e)return e.focus();return self.clients.openWindow(e.notification.data?.url||`/`)}))});
|
|
1
|
+
try{self[`workbox:core:7.3.0`]&&_()}catch{}var e=(e,...t)=>{let n=e;return t.length>0&&(n+=` :: ${JSON.stringify(t)}`),n},t=class extends Error{constructor(t,n){let r=e(t,n);super(r),this.name=t,this.details=n}},n={googleAnalytics:`googleAnalytics`,precache:`precache-v2`,prefix:`workbox`,runtime:`runtime`,suffix:typeof registration<`u`?registration.scope:``},r=e=>[n.prefix,e,n.suffix].filter(e=>e&&e.length>0).join(`-`),i=e=>{for(let t of Object.keys(n))e(t)},a={updateDetails:e=>{i(t=>{typeof e[t]==`string`&&(n[t]=e[t])})},getGoogleAnalyticsName:e=>e||r(n.googleAnalytics),getPrecacheName:e=>e||r(n.precache),getPrefix:()=>n.prefix,getRuntimeName:e=>e||r(n.runtime),getSuffix:()=>n.suffix};function o(e,t){let n=t();return e.waitUntil(n),n}try{self[`workbox:precaching:7.3.0`]&&_()}catch{}var s=`__WB_REVISION__`;function c(e){if(!e)throw new t(`add-to-cache-list-unexpected-type`,{entry:e});if(typeof e==`string`){let t=new URL(e,location.href);return{cacheKey:t.href,url:t.href}}let{revision:n,url:r}=e;if(!r)throw new t(`add-to-cache-list-unexpected-type`,{entry:e});if(!n){let e=new URL(r,location.href);return{cacheKey:e.href,url:e.href}}let i=new URL(r,location.href),a=new URL(r,location.href);return i.searchParams.set(s,n),{cacheKey:i.href,url:a.href}}var l=class{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type===`install`&&t&&t.originalRequest&&t.originalRequest instanceof Request){let e=t.originalRequest.url;n?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return n}}},u=class{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:e,params:t})=>{let n=t?.cacheKey||this._precacheController.getCacheKeyForURL(e.url);return n?new Request(n,{headers:e.headers}):e},this._precacheController=e}},d;function f(){if(d===void 0){let e=new Response(``);if(`body`in e)try{new Response(e.body),d=!0}catch{d=!1}d=!1}return d}async function p(e,n){let r=null;if(e.url&&(r=new URL(e.url).origin),r!==self.location.origin)throw new t(`cross-origin-copy-response`,{origin:r});let i=e.clone(),a={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=n?n(a):a,s=f()?i.body:await i.blob();return new Response(s,o)}var m=e=>new URL(String(e),location.href).href.replace(RegExp(`^${location.origin}`),``);function h(e,t){let n=new URL(e);for(let e of t)n.searchParams.delete(e);return n.href}async function g(e,t,n,r){let i=h(t.url,n);if(t.url===i)return e.match(t,r);let a=Object.assign(Object.assign({},r),{ignoreSearch:!0}),o=await e.keys(t,a);for(let t of o)if(i===h(t.url,n))return e.match(t,r)}var v=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}},y=new Set;async function b(){for(let e of y)await e()}function x(e){return new Promise(t=>setTimeout(t,e))}try{self[`workbox:strategies:7.3.0`]&&_()}catch{}function S(e){return typeof e==`string`?new Request(e):e}var C=class{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new v,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(let e of this._plugins)this._pluginStateMap.set(e,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){let{event:n}=this,r=S(e);if(r.mode===`navigate`&&n instanceof FetchEvent&&n.preloadResponse){let e=await n.preloadResponse;if(e)return e}let i=this.hasCallback(`fetchDidFail`)?r.clone():null;try{for(let e of this.iterateCallbacks(`requestWillFetch`))r=await e({request:r.clone(),event:n})}catch(e){if(e instanceof Error)throw new t(`plugin-error-request-will-fetch`,{thrownErrorMessage:e.message})}let a=r.clone();try{let e;e=await fetch(r,r.mode===`navigate`?void 0:this._strategy.fetchOptions);for(let t of this.iterateCallbacks(`fetchDidSucceed`))e=await t({event:n,request:a,response:e});return e}catch(e){throw i&&await this.runCallbacks(`fetchDidFail`,{error:e,event:n,originalRequest:i.clone(),request:a.clone()}),e}}async fetchAndCachePut(e){let t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){let t=S(e),n,{cacheName:r,matchOptions:i}=this._strategy,a=await this.getCacheKey(t,`read`),o=Object.assign(Object.assign({},i),{cacheName:r});n=await caches.match(a,o);for(let e of this.iterateCallbacks(`cachedResponseWillBeUsed`))n=await e({cacheName:r,matchOptions:i,cachedResponse:n,request:a,event:this.event})||void 0;return n}async cachePut(e,n){let r=S(e);await x(0);let i=await this.getCacheKey(r,`write`);if(!n)throw new t(`cache-put-with-no-response`,{url:m(i.url)});let a=await this._ensureResponseSafeToCache(n);if(!a)return!1;let{cacheName:o,matchOptions:s}=this._strategy,c=await self.caches.open(o),l=this.hasCallback(`cacheDidUpdate`),u=l?await g(c,i.clone(),[`__WB_REVISION__`],s):null;try{await c.put(i,l?a.clone():a)}catch(e){if(e instanceof Error)throw e.name===`QuotaExceededError`&&await b(),e}for(let e of this.iterateCallbacks(`cacheDidUpdate`))await e({cacheName:o,oldResponse:u,newResponse:a.clone(),request:i,event:this.event});return!0}async getCacheKey(e,t){let n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let r=e;for(let e of this.iterateCallbacks(`cacheKeyWillBeUsed`))r=S(await e({mode:t,request:r,event:this.event,params:this.params}));this._cacheKeys[n]=r}return this._cacheKeys[n]}hasCallback(e){for(let t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(let n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(let t of this._strategy.plugins)if(typeof t[e]==`function`){let n=this._pluginStateMap.get(t);yield r=>{let i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){let e=this._extendLifetimePromises.splice(0),t=(await Promise.allSettled(e)).find(e=>e.status===`rejected`);if(t)throw t.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(let e of this.iterateCallbacks(`cacheWillUpdate`))if(t=await e({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}},w=class{constructor(e={}){this.cacheName=a.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){let[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});let t=e.event,n=typeof e.request==`string`?new Request(e.request):e.request,r=`params`in e?e.params:void 0,i=new C(this,{event:t,request:n,params:r}),a=this._getResponse(i,n,t);return[a,this._awaitComplete(a,i,n,t)]}async _getResponse(e,n,r){await e.runCallbacks(`handlerWillStart`,{event:r,request:n});let i;try{if(i=await this._handle(n,e),!i||i.type===`error`)throw new t(`no-response`,{url:n.url})}catch(t){if(t instanceof Error){for(let a of e.iterateCallbacks(`handlerDidError`))if(i=await a({error:t,event:r,request:n}),i)break}if(!i)throw t}for(let t of e.iterateCallbacks(`handlerWillRespond`))i=await t({event:r,request:n,response:i});return i}async _awaitComplete(e,t,n,r){let i,a;try{i=await e}catch{}try{await t.runCallbacks(`handlerDidRespond`,{event:r,request:n,response:i}),await t.doneWaiting()}catch(e){e instanceof Error&&(a=e)}if(await t.runCallbacks(`handlerDidComplete`,{event:r,request:n,response:i,error:a}),t.destroy(),a)throw a}},T=class e extends w{constructor(t={}){t.cacheName=a.getPrecacheName(t.cacheName),super(t),this._fallbackToNetwork=t.fallbackToNetwork!==!1,this.plugins.push(e.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){return await t.cacheMatch(e)||(t.event&&t.event.type===`install`?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,n){let r,i=n.params||{};if(this._fallbackToNetwork){let t=i.integrity,a=e.integrity,o=!a||a===t;r=await n.fetch(new Request(e,{integrity:e.mode===`no-cors`?void 0:a||t})),t&&o&&e.mode!==`no-cors`&&(this._useDefaultCacheabilityPluginIfNeeded(),await n.cachePut(e,r.clone()))}else throw new t(`missing-precache-entry`,{cacheName:this.cacheName,url:e.url});return r}async _handleInstall(e,n){this._useDefaultCacheabilityPluginIfNeeded();let r=await n.fetch(e);if(!await n.cachePut(e,r.clone()))throw new t(`bad-precaching-response`,{url:e.url,status:r.status});return r}_useDefaultCacheabilityPluginIfNeeded(){let t=null,n=0;for(let[r,i]of this.plugins.entries())i!==e.copyRedirectedCacheableResponsesPlugin&&(i===e.defaultPrecacheCacheabilityPlugin&&(t=r),i.cacheWillUpdate&&n++);n===0?this.plugins.push(e.defaultPrecacheCacheabilityPlugin):n>1&&t!==null&&this.plugins.splice(t,1)}};T.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:e}){return!e||e.status>=400?null:e}},T.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:e}){return e.redirected?await p(e):e}};var E=class{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new T({cacheName:a.getPrecacheName(e),plugins:[...t,new u({precacheController:this})],fallbackToNetwork:n}),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),!0)}addToCacheList(e){let n=[];for(let r of e){typeof r==`string`?n.push(r):r&&r.revision===void 0&&n.push(r.url);let{cacheKey:e,url:i}=c(r),a=typeof r!=`string`&&r.revision?`reload`:`default`;if(this._urlsToCacheKeys.has(i)&&this._urlsToCacheKeys.get(i)!==e)throw new t(`add-to-cache-list-conflicting-entries`,{firstEntry:this._urlsToCacheKeys.get(i),secondEntry:e});if(typeof r!=`string`&&r.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==r.integrity)throw new t(`add-to-cache-list-conflicting-integrities`,{url:i});this._cacheKeysToIntegrities.set(e,r.integrity)}if(this._urlsToCacheKeys.set(i,e),this._urlsToCacheModes.set(i,a),n.length>0){let e=`Workbox is precaching URLs without revision info: ${n.join(`, `)}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(e)}}}install(e){return o(e,async()=>{let t=new l;this.strategy.plugins.push(t);for(let[t,n]of this._urlsToCacheKeys){let r=this._cacheKeysToIntegrities.get(n),i=this._urlsToCacheModes.get(t),a=new Request(t,{integrity:r,cache:i,credentials:`same-origin`});await Promise.all(this.strategy.handleAll({params:{cacheKey:n},request:a,event:e}))}let{updatedURLs:n,notUpdatedURLs:r}=t;return{updatedURLs:n,notUpdatedURLs:r}})}activate(e){return o(e,async()=>{let e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),n=new Set(this._urlsToCacheKeys.values()),r=[];for(let i of t)n.has(i.url)||(await e.delete(i),r.push(i.url));return{deletedURLs:r}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){let t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){let t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){let n=this.getCacheKeyForURL(e);if(!n)throw new t(`non-precached-url`,{url:e});return t=>(t.request=new Request(e),t.params=Object.assign({cacheKey:n},t.params),this.strategy.handle(t))}},D,O=()=>(D||=new E,D);try{self[`workbox:routing:7.3.0`]&&_()}catch{}var k=e=>e&&typeof e==`object`?e:{handle:e},A=class{constructor(e,t,n=`GET`){this.handler=k(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=k(e)}},j=class extends A{constructor(e,t,n){super(({url:t})=>{let n=e.exec(t.href);if(n&&!(t.origin!==location.origin&&n.index!==0))return n.slice(1)},t,n)}},M=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener(`fetch`,(e=>{let{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)}))}addCacheListener(){self.addEventListener(`message`,(e=>{if(e.data&&e.data.type===`CACHE_URLS`){let{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(t=>{typeof t==`string`&&(t=[t]);let n=new Request(...t);return this.handleRequest({request:n,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}}))}handleRequest({request:e,event:t}){let n=new URL(e.url,location.href);if(!n.protocol.startsWith(`http`))return;let r=n.origin===location.origin,{params:i,route:a}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:n}),o=a&&a.handler,s=e.method;if(!o&&this._defaultHandlerMap.has(s)&&(o=this._defaultHandlerMap.get(s)),!o)return;let c;try{c=o.handle({url:n,request:e,event:t,params:i})}catch(e){c=Promise.reject(e)}let l=a&&a.catchHandler;return c instanceof Promise&&(this._catchHandler||l)&&(c=c.catch(async r=>{if(l)try{return await l.handle({url:n,request:e,event:t,params:i})}catch(e){e instanceof Error&&(r=e)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw r})),c}findMatchingRoute({url:e,sameOrigin:t,request:n,event:r}){let i=this._routes.get(n.method)||[];for(let a of i){let i,o=a.match({url:e,sameOrigin:t,request:n,event:r});if(o)return i=o,(Array.isArray(i)&&i.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o==`boolean`)&&(i=void 0),{route:a,params:i}}return{}}setDefaultHandler(e,t=`GET`){this._defaultHandlerMap.set(t,k(e))}setCatchHandler(e){this._catchHandler=k(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 t(`unregister-route-but-not-found-with-method`,{method:e.method});let n=this._routes.get(e.method).indexOf(e);if(n>-1)this._routes.get(e.method).splice(n,1);else throw new t(`unregister-route-route-not-registered`)}},N,P=()=>(N||(N=new M,N.addFetchListener(),N.addCacheListener()),N);function F(e,n,r){let i;if(typeof e==`string`){let t=new URL(e,location.href);i=new A(({url:e})=>e.href===t.href,n,r)}else if(e instanceof RegExp)i=new j(e,n,r);else if(typeof e==`function`)i=new A(e,n,r);else if(e instanceof A)i=e;else throw new t(`unsupported-route-type`,{moduleName:`workbox-routing`,funcName:`registerRoute`,paramName:`capture`});return P().registerRoute(i),i}function I(e,t=[]){for(let n of[...e.searchParams.keys()])t.some(e=>e.test(n))&&e.searchParams.delete(n);return e}function*L(e,{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:n=`index.html`,cleanURLs:r=!0,urlManipulation:i}={}){let a=new URL(e,location.href);a.hash=``,yield a.href;let o=I(a,t);if(yield o.href,n&&o.pathname.endsWith(`/`)){let e=new URL(o.href);e.pathname+=n,yield e.href}if(r){let e=new URL(o.href);e.pathname+=`.html`,yield e.href}if(i){let e=i({url:a});for(let t of e)yield t.href}}var R=class extends A{constructor(e,t){super(({request:n})=>{let r=e.getURLsToCacheKeys();for(let i of L(n.url,t)){let t=r.get(i);if(t)return{cacheKey:t,integrity:e.getIntegrityForCacheKey(t)}}},e.strategy)}};function z(e){F(new R(O(),e))}function B(e){O().precache(e)}function V(e,t){B(e),z(t)}V([{"revision":"1872c500de691dce40960bb85481de07","url":"registerSW.js"},{"revision":"4c6743a279cfd1eb8f2d8173bb57cad6","url":"index.html"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-512.svg"},{"revision":"a0fb34fc84eb148d51812cd62669f20d","url":"icon-192.svg"},{"revision":"948e060affb598c339be40d69e1f6f9c","url":"monacoeditorwork/ts.worker.bundle.js"},{"revision":"a5d8a1acfc29c2a4c882a54ffc93def3","url":"monacoeditorwork/json.worker.bundle.js"},{"revision":"d0f94ce046cf8cf09605ee7664dac557","url":"monacoeditorwork/html.worker.bundle.js"},{"revision":"a424156a79b9c1b907db93aa3180585a","url":"monacoeditorwork/editor.worker.bundle.js"},{"revision":"b3a7f967560c9816492a1567b3f7f0dc","url":"monacoeditorwork/css.worker.bundle.js"},{"revision":null,"url":"assets/x-CG-_0yIW.js"},{"revision":null,"url":"assets/video-preview-BEuZs1dG.js"},{"revision":null,"url":"assets/vendor-xterm-CU2c3f0A.js"},{"revision":null,"url":"assets/vendor-xterm-BrP-ENHg.css"},{"revision":null,"url":"assets/vendor-ui-B-89Uj8i.js"},{"revision":null,"url":"assets/vendor-mermaid-DsfY6y4f.js"},{"revision":null,"url":"assets/vendor-markdown-0Mxgxy0L.js"},{"revision":null,"url":"assets/utils-CTg5uAYR.js"},{"revision":null,"url":"assets/use-monaco-theme-SyJzNaNN.js"},{"revision":null,"url":"assets/use-blob-url-e9uTXjv5.js"},{"revision":null,"url":"assets/treemap-KZPCXAKY-Da7U3Olf.js"},{"revision":null,"url":"assets/text-wrap-BV-R4Vvy.js"},{"revision":null,"url":"assets/terminal-tab-D_C7amDZ.js"},{"revision":null,"url":"assets/table-tf7pRkME.js"},{"revision":null,"url":"assets/tab-store-0rGchMXr.js"},{"revision":null,"url":"assets/sqlite-viewer-8oWf4JCB.js"},{"revision":null,"url":"assets/sql-query-editor-BVn40O0T.js"},{"revision":null,"url":"assets/sparkles-fWUT5Vzq.js"},{"revision":null,"url":"assets/settings-tab-BFbe6ybw.js"},{"revision":null,"url":"assets/settings-store-Dvk8Lvwm.js"},{"revision":null,"url":"assets/scroll-area-7H-Q_k8c.js"},{"revision":null,"url":"assets/rolldown-runtime-FhOqtrmT.js"},{"revision":null,"url":"assets/refresh-cw-LlbZDJpO.js"},{"revision":null,"url":"assets/react-GqWghJ-L.js"},{"revision":null,"url":"assets/radar-KQ55EAFF-BwqCptkx.js"},{"revision":null,"url":"assets/postgres-viewer-DkVKzTKJ.js"},{"revision":null,"url":"assets/port-forwarding-tab-DfaV6GPS.js"},{"revision":null,"url":"assets/pie-UPGHQEXC-BECm43s6.js"},{"revision":null,"url":"assets/pdf-preview-D0JDPYYs.js"},{"revision":null,"url":"assets/packet-RMMSAZCW-DMi06dVb.js"},{"revision":null,"url":"assets/number-overlay-editor-BoRxunFN.js"},{"revision":null,"url":"assets/markdown-renderer-CJMJ5Qq0.js"},{"revision":null,"url":"assets/lib-DQHnkzGy.js"},{"revision":null,"url":"assets/keybindings-store-Djjc6tPj.js"},{"revision":null,"url":"assets/katex-BuytEdO1.js"},{"revision":null,"url":"assets/input-ozrR2DAV.js"},{"revision":null,"url":"assets/info-3K5VOQVL-fJy9dGkV.js"},{"revision":null,"url":"assets/index-zP-OjEml.js"},{"revision":null,"url":"assets/index-COOnLKGB.css"},{"revision":null,"url":"assets/image-preview-BlBVP277.js"},{"revision":null,"url":"assets/glide-data-grid-nthEL3fk.css"},{"revision":null,"url":"assets/glide-data-grid-DIvkBUKj.js"},{"revision":null,"url":"assets/github.min-D2BCvnWf.css"},{"revision":null,"url":"assets/github-dark-dimmed.min-BrpRStFV.css"},{"revision":null,"url":"assets/gitGraph-HDMCJU4V-b3n-Tgk6.js"},{"revision":null,"url":"assets/file-store-BrbCNyLm.js"},{"revision":null,"url":"assets/file-exclamation-point-Baz81y5z.js"},{"revision":null,"url":"assets/extension-webview-DgfgR787.js"},{"revision":null,"url":"assets/esm-zjerHxpO.js"},{"revision":null,"url":"assets/dist-DGSkE2Ml.js"},{"revision":null,"url":"assets/dist-CaKCIxem.js"},{"revision":null,"url":"assets/dist-0kPgRaVx.js"},{"revision":null,"url":"assets/diff-viewer-BOTb0dkG.js"},{"revision":null,"url":"assets/database-viewer-BRW8CMzC.js"},{"revision":null,"url":"assets/database-DOWH9-Vv.js"},{"revision":null,"url":"assets/data-grid-types-BTQHYBUh.js"},{"revision":null,"url":"assets/data-grid-overlay-editor-BjjuE4-G.js"},{"revision":null,"url":"assets/csv-preview-7TsYBQI6.js"},{"revision":null,"url":"assets/csv-parser-Dly5nqE1.js"},{"revision":null,"url":"assets/createLucideIcon-BjHrJDVb.js"},{"revision":null,"url":"assets/conflict-editor-WxMZDucw.js"},{"revision":null,"url":"assets/code-editor-DZ1e_sz0.js"},{"revision":null,"url":"assets/code-DGBecc50.js"},{"revision":null,"url":"assets/chevron-right-DnHIvvcy.js"},{"revision":null,"url":"assets/chat-tab-Cq8xYO7K.js"},{"revision":null,"url":"assets/audio-preview-BjoIjXlf.js"},{"revision":null,"url":"assets/arrow-up-Rcw6_KKu.js"},{"revision":null,"url":"assets/architecture-PBZL5I3N-DVlAZGlv.js"},{"revision":null,"url":"assets/api-settings-D0_eiIYv.js"},{"revision":null,"url":"assets/api-client-Dvzcc_EO.js"},{"revision":null,"url":"assets/ai-settings-section-ysK_Eixc.js"},{"revision":null,"url":"assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2"},{"revision":null,"url":"assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2"},{"revision":null,"url":"assets/KaTeX_Size2-Regular-Dy4dx90m.woff2"},{"revision":null,"url":"assets/KaTeX_Size1-Regular-mCD8mA8B.woff2"},{"revision":null,"url":"assets/KaTeX_Script-Regular-D3wIWfF6.woff2"},{"revision":null,"url":"assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2"},{"revision":null,"url":"assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2"},{"revision":null,"url":"assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2"},{"revision":null,"url":"assets/KaTeX_Math-Italic-t53AETM-.woff2"},{"revision":null,"url":"assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2"},{"revision":null,"url":"assets/KaTeX_Main-Regular-B22Nviop.woff2"},{"revision":null,"url":"assets/KaTeX_Main-Italic-NWA7e6Wa.woff2"},{"revision":null,"url":"assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2"},{"revision":null,"url":"assets/KaTeX_Main-Bold-Cx986IdX.woff2"},{"revision":null,"url":"assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2"},{"revision":null,"url":"assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2"},{"revision":null,"url":"assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2"},{"revision":null,"url":"assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2"},{"revision":null,"url":"assets/KaTeX_AMS-Regular-BQhdFMY1.woff2"},{"revision":"79c8870653c8f419f2e3323085e1f4be","url":"manifest.webmanifest"}]),self.addEventListener(`push`,e=>{e.waitUntil(self.clients.matchAll({type:`window`,includeUncontrolled:!0}).then(t=>{if(t.some(e=>e.visibilityState===`visible`))return;let n=e.data?.json()??{title:`PPM`,body:`Chat completed`};return self.registration.showNotification(n.title,{body:n.body,icon:`/icon-192.png`,badge:`/icon-192.png`,tag:`ppm-chat-done`,silent:!1,data:{url:self.location.origin}})}))}),self.addEventListener(`notificationclick`,e=>{e.notification.close(),e.waitUntil(self.clients.matchAll({type:`window`,includeUncontrolled:!0}).then(t=>{for(let e of t)if(e.url.includes(self.location.origin)&&`focus`in e)return e.focus();return self.clients.openWindow(e.notification.data?.url||`/`)}))});
|
package/package.json
CHANGED
|
@@ -76,6 +76,8 @@ export function registerProjectsCommands(program: Command): void {
|
|
|
76
76
|
.action(async (projectPath: string, options: { name?: string }) => {
|
|
77
77
|
try {
|
|
78
78
|
const { projectService } = await import("../../services/project.service.ts");
|
|
79
|
+
const { configService } = await import("../../services/config.service.ts");
|
|
80
|
+
configService.load();
|
|
79
81
|
const entry = projectService.add(projectPath, options.name);
|
|
80
82
|
console.log(`${C.green}Added project:${C.reset} ${entry.name} → ${entry.path}`);
|
|
81
83
|
} catch (err) {
|
|
@@ -90,6 +92,8 @@ export function registerProjectsCommands(program: Command): void {
|
|
|
90
92
|
.action(async (nameOrPath: string) => {
|
|
91
93
|
try {
|
|
92
94
|
const { projectService } = await import("../../services/project.service.ts");
|
|
95
|
+
const { configService } = await import("../../services/config.service.ts");
|
|
96
|
+
configService.load();
|
|
93
97
|
projectService.remove(nameOrPath);
|
|
94
98
|
console.log(`${C.green}Removed project:${C.reset} ${nameOrPath}`);
|
|
95
99
|
} catch (err) {
|
package/src/index.ts
CHANGED
|
File without changes
|
|
@@ -160,13 +160,22 @@ class ConfigService {
|
|
|
160
160
|
|
|
161
161
|
private syncProjectsToDb(projects: ProjectConfig[]): void {
|
|
162
162
|
const db = getDb();
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const
|
|
169
|
-
|
|
163
|
+
// Wrap in a transaction so a mid-operation SIGKILL cannot leave the table empty
|
|
164
|
+
// (DELETE committed but INSERTs never ran would permanently wipe all projects).
|
|
165
|
+
db.exec("BEGIN");
|
|
166
|
+
try {
|
|
167
|
+
db.exec("DELETE FROM projects");
|
|
168
|
+
const stmt = db.query(
|
|
169
|
+
"INSERT INTO projects (path, name, color, sort_order) VALUES (?, ?, ?, ?)",
|
|
170
|
+
);
|
|
171
|
+
for (let i = 0; i < projects.length; i++) {
|
|
172
|
+
const p = projects[i]!;
|
|
173
|
+
stmt.run(p.path, p.name, p.color ?? null, i);
|
|
174
|
+
}
|
|
175
|
+
db.exec("COMMIT");
|
|
176
|
+
} catch (e) {
|
|
177
|
+
db.exec("ROLLBACK");
|
|
178
|
+
throw e;
|
|
170
179
|
}
|
|
171
180
|
}
|
|
172
181
|
}
|
|
@@ -554,12 +554,14 @@ async function notifyStateChange(from: string, to: string, reason: string) {
|
|
|
554
554
|
async function connectCloud(opts: { port: number }, serverArgs: string[], logFd: number): Promise<boolean> {
|
|
555
555
|
try {
|
|
556
556
|
const { getCloudDevice, saveCloudDevice } = await import("./cloud.service.ts");
|
|
557
|
-
const { configService } = await import("./config.service.ts");
|
|
558
557
|
const device = getCloudDevice();
|
|
559
558
|
if (!device) return false; // not linked to cloud
|
|
560
559
|
|
|
561
560
|
const { connect, onCommand } = await import("./cloud-ws.service.ts");
|
|
562
561
|
const { VERSION } = await import("../version.ts");
|
|
562
|
+
// Import getConfigValue for fresh SQLite reads — supervisor's in-memory configService
|
|
563
|
+
// is a separate process singleton and won't see changes made by the server process.
|
|
564
|
+
const { getConfigValue } = await import("./db.service.ts");
|
|
563
565
|
const startTime = Date.now();
|
|
564
566
|
|
|
565
567
|
connect({
|
|
@@ -570,8 +572,13 @@ async function connectCloud(opts: { port: number }, serverArgs: string[], logFd:
|
|
|
570
572
|
const status = readStatus();
|
|
571
573
|
// Re-read device file each heartbeat to pick up name changes
|
|
572
574
|
const currentDevice = getCloudDevice();
|
|
573
|
-
//
|
|
574
|
-
|
|
575
|
+
// Read device_name fresh from SQLite — configService.get() is stale in the supervisor
|
|
576
|
+
// process (server process writes to SQLite but can't update supervisor's in-memory cache).
|
|
577
|
+
let configName = "";
|
|
578
|
+
try {
|
|
579
|
+
const raw = getConfigValue("device_name");
|
|
580
|
+
if (raw) configName = JSON.parse(raw) || "";
|
|
581
|
+
} catch {}
|
|
575
582
|
if (configName && currentDevice && configName !== currentDevice.name) {
|
|
576
583
|
currentDevice.name = configName;
|
|
577
584
|
saveCloudDevice(currentDevice);
|
|
@@ -288,6 +288,9 @@ export function ChatTab({ metadata, tabId }: ChatTabProps) {
|
|
|
288
288
|
setSlashFilter("");
|
|
289
289
|
}, []);
|
|
290
290
|
|
|
291
|
+
// Stable callback: clear external paths once consumed (avoids inline lambda breaking MessageInput memo)
|
|
292
|
+
const handleExternalPathsConsumed = useCallback(() => setExternalPaths(null), []);
|
|
293
|
+
|
|
291
294
|
// --- Disambiguation picker handler (OS drag resolve with multiple matches) ---
|
|
292
295
|
const handleDisambiguate = useCallback((matches: FileNode[]) => {
|
|
293
296
|
setDisambiguateItems(matches);
|
|
@@ -470,7 +473,7 @@ export function ChatTab({ metadata, tabId }: ChatTabProps) {
|
|
|
470
473
|
fileSelected={fileSelected}
|
|
471
474
|
externalFiles={externalFiles}
|
|
472
475
|
externalPaths={externalPaths}
|
|
473
|
-
onExternalPathsConsumed={
|
|
476
|
+
onExternalPathsConsumed={handleExternalPathsConsumed}
|
|
474
477
|
onDisambiguate={handleDisambiguate}
|
|
475
478
|
permissionMode={permissionMode}
|
|
476
479
|
onModeChange={setPermissionMode}
|
|
@@ -107,9 +107,9 @@ export const MessageInput = memo(function MessageInput({
|
|
|
107
107
|
typeof CSS === "undefined" || !CSS.supports("field-sizing", "content"),
|
|
108
108
|
);
|
|
109
109
|
|
|
110
|
-
// File index
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
// File index: subscribe imperatively to avoid re-renders on every file store update.
|
|
111
|
+
// The component only needs fileIndex for the effect below (populating fileItemsRef),
|
|
112
|
+
// not for rendering — so we use Zustand's subscribe() instead of selector hooks.
|
|
113
113
|
|
|
114
114
|
/** Write value to both textareas + ref + update hasText state */
|
|
115
115
|
const writeTextareas = useCallback((newValue: string) => {
|
|
@@ -208,18 +208,32 @@ export const MessageInput = memo(function MessageInput({
|
|
|
208
208
|
return () => window.removeEventListener("ppm:slash-items-refresh", handler);
|
|
209
209
|
}, [fetchSlashItems]);
|
|
210
210
|
|
|
211
|
-
// Sync file picker items from store index —
|
|
211
|
+
// Sync file picker items from store index — subscribe imperatively to avoid re-renders.
|
|
212
|
+
// Reads fileIndex on mount + whenever fileIndex/indexStatus changes in the store.
|
|
212
213
|
useEffect(() => {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
214
|
+
const syncFromStore = () => {
|
|
215
|
+
if (!projectName) {
|
|
216
|
+
fileItemsRef.current = [];
|
|
217
|
+
onFileItemsLoaded?.([]);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const { fileIndex } = useFileStore.getState();
|
|
221
|
+
const nodes: FileNode[] = fileIndex.map((e) => ({ name: e.name, path: e.path, type: e.type }));
|
|
222
|
+
fileItemsRef.current = nodes;
|
|
223
|
+
onFileItemsLoaded?.(nodes);
|
|
224
|
+
};
|
|
225
|
+
syncFromStore();
|
|
226
|
+
// Track previous values to only sync on relevant changes
|
|
227
|
+
let prevIdx = useFileStore.getState().fileIndex;
|
|
228
|
+
let prevStatus = useFileStore.getState().indexStatus;
|
|
229
|
+
return useFileStore.subscribe((state) => {
|
|
230
|
+
if (state.fileIndex !== prevIdx || state.indexStatus !== prevStatus) {
|
|
231
|
+
prevIdx = state.fileIndex;
|
|
232
|
+
prevStatus = state.indexStatus;
|
|
233
|
+
syncFromStore();
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
}, [projectName]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
223
237
|
|
|
224
238
|
// Handle parent selecting a slash item
|
|
225
239
|
useEffect(() => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState, useCallback, useRef, useEffect, useMemo } from "react";
|
|
1
|
+
import { useState, useCallback, useRef, useEffect, useMemo, startTransition } from "react";
|
|
2
2
|
import { useWebSocket } from "./use-websocket";
|
|
3
3
|
import { api, getAuthToken, projectUrl } from "@/lib/api-client";
|
|
4
4
|
import { flattenWithExpansions, prefixPreCompactIds } from "@/lib/flatten-expansions";
|
|
@@ -172,32 +172,39 @@ export function useChat(sessionId: string | null, providerId = "claude", project
|
|
|
172
172
|
return true;
|
|
173
173
|
}, []);
|
|
174
174
|
|
|
175
|
-
/** Flush refs into React state (called from
|
|
175
|
+
/** Flush refs into React state (called from throttled timer or directly) */
|
|
176
176
|
const flushMessages = useCallback(() => {
|
|
177
177
|
syncRafRef.current = 0;
|
|
178
178
|
const content = streamingContentRef.current;
|
|
179
179
|
const events = [...streamingEventsRef.current];
|
|
180
180
|
const account = streamingAccountRef.current;
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
181
|
+
// startTransition marks streaming updates as low-priority so React
|
|
182
|
+
// yields to user interactions (text selection, copy, scroll) first.
|
|
183
|
+
startTransition(() => {
|
|
184
|
+
setMessages((prev) => {
|
|
185
|
+
const last = prev[prev.length - 1];
|
|
186
|
+
if (last?.role === "assistant" && !last.id.startsWith("final-")) {
|
|
187
|
+
return [...prev.slice(0, -1), { ...last, content, events, ...account }];
|
|
188
|
+
}
|
|
189
|
+
return [...prev, {
|
|
190
|
+
id: `streaming-${Date.now()}`,
|
|
191
|
+
role: "assistant" as const,
|
|
192
|
+
content,
|
|
193
|
+
events,
|
|
194
|
+
timestamp: new Date().toISOString(),
|
|
195
|
+
...account,
|
|
196
|
+
}];
|
|
197
|
+
});
|
|
194
198
|
});
|
|
195
199
|
}, []);
|
|
196
200
|
|
|
197
|
-
/** Throttled sync — batches rapid WS events into one render per
|
|
201
|
+
/** Throttled sync — batches rapid WS events into one render per ~100ms.
|
|
202
|
+
* Previously used rAF (~16ms / 60fps) which blocked the main thread with
|
|
203
|
+
* frequent ReactMarkdown re-parses, causing lag during text selection/copy.
|
|
204
|
+
* 100ms (10fps) keeps streaming smooth while leaving idle time for interactions. */
|
|
198
205
|
const syncMessages = useCallback(() => {
|
|
199
206
|
if (!syncRafRef.current) {
|
|
200
|
-
syncRafRef.current =
|
|
207
|
+
syncRafRef.current = window.setTimeout(flushMessages, 100) as unknown as number;
|
|
201
208
|
}
|
|
202
209
|
}, [flushMessages]);
|
|
203
210
|
|
|
@@ -414,7 +421,7 @@ export function useChat(sessionId: string | null, providerId = "claude", project
|
|
|
414
421
|
playNotificationSound("done");
|
|
415
422
|
}
|
|
416
423
|
// Cancel any pending throttled sync — done handler writes final state directly
|
|
417
|
-
if (syncRafRef.current) {
|
|
424
|
+
if (syncRafRef.current) { clearTimeout(syncRafRef.current); syncRafRef.current = 0; }
|
|
418
425
|
// Finalize the streaming message — preserve SDK UUID for fork/rewind
|
|
419
426
|
const finalContent = streamingContentRef.current;
|
|
420
427
|
const finalEvents = [...streamingEventsRef.current];
|
|
@@ -624,7 +631,7 @@ export function useChat(sessionId: string | null, providerId = "claude", project
|
|
|
624
631
|
streamingContentRef.current = "";
|
|
625
632
|
streamingEventsRef.current = [];
|
|
626
633
|
bashOutputRef.current.clear();
|
|
627
|
-
if (syncRafRef.current) {
|
|
634
|
+
if (syncRafRef.current) { clearTimeout(syncRafRef.current); syncRafRef.current = 0; }
|
|
628
635
|
setIsConnected(false);
|
|
629
636
|
// Reset team state
|
|
630
637
|
teamActivityRef.current = { teamNames: new Set(), messages: [] };
|
|
@@ -669,7 +676,7 @@ export function useChat(sessionId: string | null, providerId = "claude", project
|
|
|
669
676
|
|
|
670
677
|
if (isFollowUp) {
|
|
671
678
|
// Cancel pending throttled sync before finalizing
|
|
672
|
-
if (syncRafRef.current) {
|
|
679
|
+
if (syncRafRef.current) { clearTimeout(syncRafRef.current); syncRafRef.current = 0; }
|
|
673
680
|
// Streaming follow-up: finalize current assistant message, then send
|
|
674
681
|
const finalContent = streamingContentRef.current;
|
|
675
682
|
const finalEvents = [...streamingEventsRef.current];
|