/**
 * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0.
 * Original file: /npm/wesl@0.6.36/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{RegexMatchers as e,matchOneOf as t,withStreamAction as n,or as r,tokenOf as a,delimited as o,token as s,fn as i,tokenKind as c,seq as l,repeatPlus as u,req as d,yes as p,preceded as m,span as f,opt as g,tagScope as h,kind as b,withSepPlus as x,not as v,terminated as _,seqObj as k,repeat as y,tracing as w,collectArray as E,withSep as S,separated_pair as N,text as $,eof as M,CachingStream as P,MatchersStream as T,ParseError as B,SrcMapBuilder as R,srcLog as j}from"/npm/mini-parse@0.6.36/+esm";function C(e,t){w&&function(e,t){if(!e)throw new Error(t)}(e,t)}function A(e){throw new F("Unreachable value",{data:e})}var F=class extends Error{data;constructor(e,t){super(e,t),this.data=t?.data}};function I(e,t,n,r){const a=e.get(t)||new Map;e.set(t,a),a.set(n,r)}const O=/\b(\w+)\b/gi;function D(e,t){return e.replaceAll(O,(e=>e in t?t[e]:e))}function L(e,t,n=t){const r=[];for(let a=0;a<e.length;a+=n)r.push(e.slice(a,a+t));return r}function U(e,t){const n=new Map;for(const r of e){const e=t(r),a=n.get(e)||[];a.push(r),n.set(e,a)}return n}function q(e,t){const n=[],r=[];for(const a of e)t(a)?n.push(a):r.push(a);return[n,r]}function W(e,t,n){const r=[n];let a=n;for(let n=0;n<e.length;n++)a=t(e[n],a),r.push(a);return r}function G(e,t){const n=Object.entries(e).map((([e,n])=>[e,n in t?t[n]:n]));return Object.fromEntries(n)}function z(e){return e[e.length-1]}function X(e,t){let n=Math.min(e.length,t.length);for(;n>0&&!J(e.slice(-n),t.slice(0,n));)n--;if(n)return t.slice(n)}function J(e,t){return e.length===t.length&&e.every(((e,n)=>e===t[n]))}function V(e,t){const n=[];for(const r of e){const e=t(r);e&&n.push(e)}return n}function H(e,t){for(const n of e){const e=t(n);if(e)return e}}function Z(e,t){return Object.fromEntries(Object.entries(e).map((([e,n])=>[e,t(n)])))}function Y(e,t){const n=Math.min(t.length,Math.max(0,e));let r=0,a=1;for(;;){const e=t.indexOf("\n",r);if(-1===e||n<=e){return[a,n-r+1]}r=e+1,a+=1}}function K(e,t){let n=e.lastIndexOf("\n",t[0]);-1===n&&(n=0);let r=e.indexOf("\n",t[0]);-1===r&&(r=e.length);const a=t[1]-t[0],o=Math.max(1,a),s=t[0]-n;return[e.slice(n,r)," ".repeat(s)+"^".repeat(o)]}const Q={};function ee(e){if("number"==typeof e)return te(e);let t="";for(let n=0;n<e.length;n+=1)t+=te(e[n]);return t}function te(e){let t,n="";t=e<0?-e<<1|1:e<<1;do{let e=31&t;t>>>=5,t>0&&(e|=32),n+=Q[e]}while(t>0);return n}function ne(e){const{url:t,text:n,lineNumber:r,lineColumn:a,length:o,error:s}=e,i={version:3,file:null,sources:[t],sourcesContent:[n??null],names:[],mappings:ee([0,0,Math.max(0,r-1),Math.max(0,a-1)])+","+ee([18,0,Math.max(0,r-1),Math.max(0,a-1)+o])};let c=`throw new Error(${JSON.stringify(s.message+"")})`;c+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i)))),c+="\n//# sourceURL="+i.sources[0];let l=0;"stackTraceLimit"in Error&&(l=Error.stackTraceLimit,Error.stackTraceLimit=1);try{(0,eval)(c)}catch(e){throw"stackTraceLimit"in Error&&(Error.stackTraceLimit=l),s.message="",w&&(e.cause=s),e}}function re(e,t){const{refIdentElem:n,originalName:r}=e,a=t??`'${r}'`;if(!n)throw new Error(a);ae(n,a)}function ae(e,t=""){const{srcModule:n,start:r,end:a}=e,{debugFilePath:o,src:s}=n,i=`${t} in file: ${o}`;j(s,[r,a],i);const[c,l]=Y(r,s);ne({url:o,text:s,lineNumber:c,lineColumn:l,length:a-r,error:new Error(i)})}function oe(e,t){const{kind:n}=e;if("unary-expression"===n)return C("!"===e.operator.value),!oe(e.expression,t);if("binary-expression"!==n){if("literal"===n){const{value:t}=e;return C("true"===t||"false"===t),"true"===t}if("parenthesized-expression"===n)return oe(e.expression,t);if("translate-time-feature"===n)return t[e.name]??!1;throw new Error(`unexpected @if expression ${JSON.stringify(e)}`)}{const n=e.operator.value;C("||"===n||"&&"===n);const r=oe(e.left,t);if("||"===n)return r||oe(e.right,t);if("&&"===n)return r&&oe(e.right,t);A(n)}}function se(e,t){let n=!1;return e.flatMap((e=>{const r=e.attributes,{valid:a,nextElseState:o}=function(e,t,n){return ie(ce(e),t,n)}(r,n,t);return n=o,a?[e]:[]}))}function ie(e,t,n){if(!e)return{valid:!0,nextElseState:t};if("@if"===e.kind){const t=function(e,t){return oe(e.param.expression,t)}(e,n);return{valid:t,nextElseState:!t}}if("@elif"===e.kind){if(!t)return{valid:!1,nextElseState:!1};const r=function(e,t){return oe(e.param.expression,t)}(e,n);return{valid:r,nextElseState:!r}}return{valid:t,nextElseState:!1}}function ce(e){if(e)for(const t of e){const e=t.attribute.kind;if("@if"===e||"@elif"===e||"@else"===e)return t.attribute}}function le(e,t){t&&(C(e.kind===t.kind),C(e.parent===t.parent),C(!t.condAttribute),e.contents=e.contents.concat(t.contents))}function ue(){de=0,pe=0}"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".split("").forEach(((e,t)=>{Q[t]=e}));let de=0,pe=0;function me(){return pe++}function fe(e,t="scope"){return{id:de++,kind:t,parent:e,contents:[]}}function ge(e,t){if(t===e)return!0;for(const n of e.contents)if(he(n)&&ge(n,t))return!0;return!1}function he(e){const{kind:t}=e;return"partial"===t||"scope"===t}function be(e){return!he(e)}function xe(e){throw new ve("Unreachable value",{data:e})}var ve=class extends Error{data;constructor(e,t){super(e,t),this.data=t?.data}};function _e(e){const{srcBuilder:t,rootElems:n,conditions:r}=e,{extracting:a=!0,skipConditionalFiltering:o=!1}=e,s={conditions:r,srcBuilder:t,extracting:a};(o?n:se(n,r)).forEach((e=>{ke(e,s)}))}function ke(e,t){switch(e.kind){case"import":return;case"text":return void function(e,t){t.srcBuilder.addCopy(e.start,e.end)}(e,t);case"name":return void function(e,t){t.srcBuilder.add(e.name,e.start,e.end)}(e,t);case"synthetic":return void function(e,t){const{text:n}=e;t.srcBuilder.addSynthetic(n,n,0,n.length)}(e,t);case"ref":return void function(e,t){if(e.ident.std)t.srcBuilder.add(e.ident.originalName,e.start,e.end);else{const n=Te(Be(e.ident));t.srcBuilder.add(n,e.start,e.end)}}(e,t);case"decl":return void Ne(e,t);case"param":case"var":case"typeDecl":case"let":case"module":case"member":case"memberRef":case"expression":case"type":case"statement":case"stuff":case"switch-clause":return void Ee(e,t);case"override":case"const":case"assert":case"alias":case"gvar":return ye(t),void Ee(e,t);case"fn":return ye(t),void function(e,t){const{attributes:n,name:r,params:a,returnAttributes:o,returnType:s,body:i}=e,{conditions:c,srcBuilder:l}=t;we(n,t),l.add("fn ",r.start-3,r.start),Ne(r,t),l.appendNext("(");const u=se(a,c);u.forEach(((e,n)=>{Se(e,t),n<u.length-1&&l.appendNext(", ")})),l.appendNext(") "),s&&(l.appendNext("-> "),we(o,t),Ee(s,t),l.appendNext(" "));Ee(i,t)}(e,t);case"struct":return ye(t),void function(e,t){const{name:n,members:r,start:a,end:o}=e,{srcBuilder:s,conditions:i}=t,c=se(r,i),l=c.length;if(0===l)return void function(e){const{name:t,members:n}=e,r=n.length?"(with current conditions)":"";ae(t,`struct '${t.ident.originalName}' has no members ${r}`)}(e);s.add("struct ",a,n.start),Ne(n,t),1===l?(s.add(" { ",n.end,r[0].start),Se(c[0],t),s.add(" }\n",o-1,o)):(s.add(" {\n",n.end,r[0].start),c.forEach((e=>{s.add("  ",e.start-1,e.start),Se(e,t),s.add(",",e.end,e.end+1),s.addNl()})),s.add("}\n",o-1,o))}(e,t);case"attribute":return void $e(e,t);case"directive":return void function(e,t){const{directive:n}=e,{kind:r}=n;"diagnostic"===r?t.srcBuilder.add(`diagnostic${Me(n.severity,n.rule)};`,e.start,e.end):"enable"===r?t.srcBuilder.add(`enable ${n.extensions.map((e=>e.name)).join(", ")};`,e.start,e.end):"requires"===r?t.srcBuilder.add(`requires ${n.extensions.map((e=>e.name)).join(", ")};`,e.start,e.end):A(r)}(e,t);default:A(e)}}function ye(e){e.extracting&&(e.srcBuilder.addNl(),e.srcBuilder.addNl())}function we(e,t){e?.forEach((e=>{$e(e,t),t.srcBuilder.add(" ",e.start,e.end)}))}function Ee(e,t){se(e.contents,t.conditions).forEach((e=>{ke(e,t)}))}function Se(e,t){se(e.contents,t.conditions).forEach((e=>{if("text"===e.kind){const{srcModule:t,start:n,end:r}=e;if(""===t.src.slice(n,r).trim())return}ke(e,t)}))}function Ne(e,t){const n=Te(e.ident);t.srcBuilder.add(n,e.start,e.end)}function $e(e,t){const{kind:n}=e.attribute;if("@attribute"===n){const{params:n}=e.attribute;if(n&&0!==n.length){t.srcBuilder.add("@"+e.attribute.name+"(",e.start,n[0].start);for(let e=0;e<n.length;e++)Ee(n[e],t),e<n.length-1&&t.srcBuilder.add(",",n[e].end,n[e+1].start);t.srcBuilder.add(")",n[n.length-1].end,e.end)}else t.srcBuilder.add("@"+e.attribute.name,e.start,e.end)}else"@builtin"===n?t.srcBuilder.add("@builtin("+e.attribute.param.name+")",e.start,e.end):"@diagnostic"===n?t.srcBuilder.add("@diagnostic"+Me(e.attribute.severity,e.attribute.rule),e.start,e.end):"@if"===n||("@interpolate"===n?t.srcBuilder.add(`@interpolate(${e.attribute.params.map((e=>e.name)).join(", ")})`,e.start,e.end):"@elif"===n||"@else"===n||A(n))}function Me(e,t){const n=t[0].name+(null!==t[1]?"."+t[1].name:"");return`(${e.name}, ${n})`}function Pe(e){const{kind:t}=e;return"binary-expression"===t?`${Pe(e.left)} ${e.operator.value} ${Pe(e.right)}`:"unary-expression"===t?`${e.operator.value}${Pe(e.expression)}`:"ref"===t?e.ident.originalName:"literal"===t?e.value:"translate-time-feature"===t?e.name:"parenthesized-expression"===t?`(${Pe(e.expression)})`:"component-expression"===t?`${Pe(e.base)}[${e.access}]`:"component-member-expression"===t?`${Pe(e.base)}.${e.access}`:"call-expression"===t?`${e.function.ident.originalName}(${e.arguments.map(Pe).join(", ")})`:void A(t)}function Te(e){return Xr(e)?(C(e.mangledName,`ERR: mangled name not found for decl ident ${Xe(e)}`),e.mangledName):e.mangledName||e.originalName}function Be(e){let t=e;do{if("decl"===t.kind)return t;t=t.refersTo}while(t);throw new Error(`unresolved identifer: ${e.originalName}`)}function Re(e){return[...e.segments.map((e=>e.name)),je(e.finalSegment)].join("::")}function je(e){if("import-item"===e.kind){const{name:t,as:n}=e;return`${t}${n?` as ${n}`:""}`}if("import-collection"===e.kind)return`{${e.subtrees.map((e=>Re(e))).join(", ")}}`;A(e)}var Ce=class{#e=[];#t=0;#n;#r=!0;#a=!1;#o;maxWidth;indent;constructor(e=0,t=60,n=2){this.maxWidth=t,this.indent=e,this.#n=" ".repeat(e),this.#o=" ".repeat(n)}nl(){this.#e.push("\n"),this.#t=0,this.#r=!1,this.#a=!1}add(e){this.#t+function(e){const t=e.indexOf("\n");return-1===t?e.length:t}(e)>this.maxWidth&&this.hangingNl(),0===this.#t&&(this.#e.push(this.#n),this.#a&&this.#e.push(this.#o),this.#t=this.indent),this.#e.push(e),this.#t+=e.length}addBlock(e,t=!0){this.#e.push(e),t&&this.nl()}get result(){return this.#e.join("")}get oneLine(){return this.#r}hangingNl(){this.nl(),this.#a=!0}};function Ae(e,t=0){const{kind:n}=e,r=new Ce(t,150);r.add(n),function(e,t){const{kind:n}=e;if("text"===n){const{srcModule:n,start:r,end:a}=e;t.add(` '${n.src.slice(r,a)}'`)}else if("var"===n||"let"===n||"gvar"===n||"const"===n||"override"===n)Oe(e.name,t),De(e.attributes,t);else if("struct"===n)t.add(" "+e.name.ident.originalName);else if("member"===n){const{name:n,typeRef:r,attributes:a}=e;De(a,t),t.add(" "+n.name),t.add(": "+qe(r))}else if("name"===n)t.add(" "+e.name);else if("memberRef"===n){const{extraComponents:n}=e,r=n?We(n):"";t.add(` ${e.name.ident.originalName}.${e.member.name}${r}`)}else if("fn"===n)!function(e,t){const{name:n,params:r,returnType:a,attributes:o}=e;t.add(" "+n.ident.originalName),t.add("(");const s=r.map((e=>{const{name:t}=e,{originalName:n}=t.decl.ident;return n+": "+qe(t.typeRef)})).join(", ");t.add(s),t.add(")"),De(o,t),a&&t.add(" -> "+qe(a))}(e,t);else if("alias"===n){const{name:n,typeRef:r}=e,a="decl"===n.ident.kind?"%":"";t.add(" "+a+n.ident.originalName),t.add("="+qe(r))}else if("attribute"===n)Fe(e.attribute,t);else if("expression"===n){const n=e.contents.map((e=>"text"===e.kind?"'"+e.srcModule.src.slice(e.start,e.end)+"'":Ae(e))).join(" ");t.add(" "+n)}else if("type"===n){const{name:n}=e,r="string"==typeof n?n:n.originalName;if(t.add(" "+r),void 0!==e.templateParams){const n=e.templateParams.map(Ue).join(", ");t.add("<"+n+">")}}else if("synthetic"===n)t.add(` '${e.text}'`);else if("import"===n)t.add(" "+(Re(e.imports)+";")),De(e.attributes,t);else if("ref"===n)t.add(" "+e.ident.originalName);else if("typeDecl"===n)Oe(e,t);else if("decl"===n){const{ident:n}=e;t.add(" %"+n.originalName)}else"assert"===n||"module"===n||"param"===n||"stuff"===n||("directive"===n?function(e,t){const{directive:n,attributes:r}=e,{kind:a}=n;if("diagnostic"===a){const{severity:e,rule:r}=n,a=Me(e,r);t.add(` diagnostic${a}`)}else"enable"===a||"requires"===a?t.add(` ${a} ${n.extensions.map((e=>e.name)).join(", ")}`):xe(a);De(r,t)}(e,t):"statement"===n?De(e.attributes,t):"switch-clause"===n||xe(n))}(e,r);let a=[];return"contents"in e&&(a=e.contents.map((e=>Ae(e,t+2)))),a.length&&(r.nl(),r.addBlock(a.join("\n"),!1)),r.result}function Fe(e,t){const{kind:n}=e;if("@attribute"===n){const{name:n,params:r}=e;t.add(" @"+n),r&&r.length>0&&(t.add("("),t.add(r.map(Le).join(", ")),t.add(")"))}else"@builtin"===n?t.add(` @builtin(${e.param.name})`):"@diagnostic"===n?t.add(` @diagnostic${Me(e.severity,e.rule)}`):"@if"===n?(t.add(" @if"),t.add("("),t.add(Pe(e.param.expression)),t.add(")")):"@elif"===n?(t.add(" @elif"),t.add("("),t.add(Pe(e.param.expression)),t.add(")")):"@else"===n?t.add(" @else"):"@interpolate"===n?t.add(` @interpolate(${e.params.map((e=>e.name)).join(", ")})`):xe(n)}function Ie(e){const t=new Ce(0,150);return Fe(e,t),t.result}function Oe(e,t){const{decl:n,typeRef:r}=e;t.add(" %"+n.ident.originalName),r&&t.add(" : "+qe(r))}function De(e,t){e?.forEach((e=>{t.add(" "+function(e){const{kind:t}=e;return"@attribute"===t?"@"+e.name:t}(e.attribute))}))}function Le(e){return"contents"in e?e.contents.map((e=>"text"===e.kind?"'"+e.srcModule.src.slice(e.start,e.end)+"'":Ae(e))).join(" "):Ae(e)}function Ue(e){return"string"==typeof e?e:"type"===e.kind?qe(e):"expression"===e.kind?Le(e):(console.log("unknown template parameter type",e),"??")}function qe(e){if(!e)return"?type?";const{name:t}=e,n="string"==typeof t?t:t.originalName;let r="";return void 0!==e.templateParams&&(r="<"+e.templateParams.map(Ue).join(", ")+">"),n+r}function We(e){return e.contents.map((e=>{const{kind:t}=e;return"text"===t?e.srcModule.src.slice(e.start,e.end):"ref"===t?e.ident.originalName:`?${e.kind}?`})).join(" ")}function Ge(e,t=0,n=!0){const{contents:r,kind:a,condAttribute:o}=e,s=new Ce(t),i=o&&Ie(o);i&&s.add(i+" "),"partial"===a&&s.add("-"),s.add("{ ");const c=r.length-1;let l=!1,u=!1;return r.forEach(((e,r)=>{if(he(e)){const r=Ge(e,t+2,n);l||s.nl(),s.addBlock(r),l=!0,u=!0}else{l&&s.add("  "),l=!1;const t=e;n?s.add(function(e){const{kind:t,originalName:n}=e;return`${"decl"===t?"%":""}${n}`}(t)):s.add(Xe(t)),r<c&&s.add(" ")}})),!u&&s.oneLine?s.add(" }"):(u&&!l&&s.nl(),s.add("}")),s.add(` #${e.id}`),s.result}function ze(e){return Ge(e,0,!1)}function Xe(e){if(!e)return JSON.stringify(e);const{kind:t,originalName:n}=e,r=e.id?`#${e.id}`:"";if("ref"===t)return`${n} ${r} -> ${Xe(e.refersTo)}`;{const{mangledName:t}=e;return`%${n}${t?`(${t})`:""} ${r} `}}function Je(e=null){return{decls:new Map,parent:e}}function Ve(e){const{decls:t,parent:n}=e;return`decls: { ${Array.from(t.entries()).map((([e,t])=>`${e}:${Xe(t)}`)).join(", ")} }, parent: ${n?Ve(n):"null"}`}function He(e,t){const{modulePath:n}=t;return[...n.split("::"),e.originalName].map((e=>{const t=(e.match(/_/g)??[]).length;return t>0?"_"+t+e:e})).join("_")}function Ze(e,t){return"_"+[...t.modulePath.split("::"),e.originalName].map((e=>{return t=e,[...t].length+e;var t})).join("")}function Ye(e,t,n,r){return Ke(n,r)}function Ke(e,t){let n=e,r=0;for(;t.has(n);)n=e+r++;return n}function Qe(e){return function e(t,n,r,a){if(r.length>0){const[o,...s]=r;return e([...t,o.name],[...n,o.name],s,a)}if("import-collection"===a.kind)return a.subtrees.flatMap((r=>e(t,n,r.segments,r.finalSegment)));if("import-item"===a.kind)return[{importPath:[...t,a.as??a.name],modulePath:[...n,a.name]}];A(a)}([],[],e.segments,e.finalSegment)}function et(e,t){const{openElems:n}=e.app.context;n?.length&&n[n.length-1].contents.push(t)}function tt(e){const{src:t,start:n,end:r}=e,{srcModule:a}=e.app.stable,o={kind:"ref",originalName:t.slice(n,r),ast:e.app.stable,id:me(),refIdentElem:null},s={kind:"ref",start:n,end:r,srcModule:a,ident:o};return o.refIdentElem=s,st(e,s),et(e,s),s}function nt(e){return at(e,!1)}function rt(e){return at(e,!0)}function at(e,t){const{src:n,start:r,end:a}=e,o=e.app,{scope:s}=o.context,{srcModule:i}=o.stable,c="decl",l={kind:c,start:r,end:a,srcModule:i,ident:{declElem:null,kind:c,originalName:n.slice(r,a),containingScope:s,isGlobal:t,id:me(),srcModule:i}};return st(e,l),et(e,l),l}(function(e){const t=new Map;return function(...n){const r=JSON.stringify(n);if(t.has(r))return t.get(r);{const a=e(...n);return t.set(r,a),a}}})((e=>" ".repeat(e)))(23),"undefined"==typeof DOMRect&&(globalThis.DOMRect=function(){});const ot=Rt("typeDecl",((e,t)=>{const n=e.tags.decl_elem?.[0],r=e.tags.typeRefElem?.[0],a=e.tags.decl_type?.[0];return jt({...t,decl:n,typeScope:a,typeRef:r},e)}));function st(e,t){const{ident:n}=t;n.id=me(),e.app.context.scope.contents.push(n)}function it(e){ct("scope",e)}function ct(e,t){const{scope:n}=t.app.context,r=fe(n,e);n.contents.push(r),t.app.context.scope=r}function lt(e){return ut(e,!0)}function ut(e,t){const n=e.app.context,r=n.scope,{parent:a}=r;return a?n.scope=a:w&&console.log("ERR: completeScope, no parent scope",r.contents),t&&(r.condAttribute=function(e,t){if("partial"===t.kind&&void 0!==e.tags.fn_name){const t=e.tags.fn_attributes?.flat?.();return ce(t)}const n=e.tags.attribute;return ce(n)}(e,r)),r}function dt(e){return Rt(e,((e,t)=>{const n=e.tags.var_name?.[0],r=e.tags.decl_scope?.[0],a=jt({...t,name:n,attributes:e.tags.attribute},e),o=n.decl.ident;return o.declElem=a,n.typeScope?(le(n.typeScope,r),o.dependentScope=n.typeScope):o.dependentScope=r,a}))}const pt=Rt("alias",((e,t)=>{const n=e.tags.alias_name?.[0],r=e.tags.alias_scope?.[0],a=e.tags.typeRefElem?.[0],o=jt({...t,name:n,attributes:e.tags.attributes?.flat()??[],typeRef:a},e);return n.ident.dependentScope=r,n.ident.declElem=o,o})),mt=Rt("fn",((e,t)=>{const n=function(e){const{fn_attributes:t,fn_name:n,fn_param:r,return_attributes:a}=e.tags,{return_type:o}=e.tags,{header_scope:s,return_scope:i,body_scope:c,body_statement:l}=e.tags,{fn_partial_scope:u}=e.tags;return{name:n?.[0],headerScope:s?.[0],returnScope:i?.[0],bodyScope:c?.[0],body:l?.[0],params:r?.flat(3)??[],attributes:t?.flat(),returnAttributes:a?.flat(),returnType:o?.flat(3)[0],fnScope:u?.[0]}}(e),{name:r,headerScope:a,returnScope:o,bodyScope:s,body:i,params:c}=n,{attributes:l,returnAttributes:u,returnType:d,fnScope:p}=n,m={...t,name:r,attributes:l,params:c,returnAttributes:u,body:i,returnType:d},f=a;o&&le(f,o),le(f,s);const g=[];for(const e of p.contents){if(e===a||e===o)continue;e===s?g.push(f):g.push(e)}return p.contents=g,r.ident.declElem=m,r.ident.dependentScope=f,m}));const ft=Rt("param",((e,t)=>{const n=e.tags.param_name?.[0],r=jt({...t,name:n,attributes:e.tags.attributes?.flat()??[]},e);return n.decl.ident.declElem=r,r})),gt=Rt("struct",((e,t)=>{const n=e.tags.type_name?.[0],r=e.tags.members,a=e.tags.attributes?.flat()??[];n.ident.dependentScope=e.tags.struct_scope?.[0];const o=jt({...t,name:n,attributes:a,members:r},e);return n.ident.declElem=o,o})),ht=Rt("member",((e,t)=>{const n=e.tags.nameElem?.[0],r=e.tags.typeRefElem?.[0],a=e.tags.attribute?.flat(3);return jt({...t,name:n,attributes:a,typeRef:r},e)})),bt=Rt("attribute",((e,t)=>{const n=e.tags.attr_variant?.[0];return{...t,attribute:n}})),xt=kt("assert"),vt=kt("statement"),_t=kt("switch-clause");function kt(e){return Rt(e,((e,t)=>{const n=e.tags.attribute?.flat(3);return jt({...t,attributes:n},e)}))}const yt=Rt("attribute",((e,t)=>{const n=e.tags.attrParam;return{...t,attribute:{kind:"@attribute",name:e.tags.name?.[0],params:n}}})),wt=Rt("type",((e,t)=>{const n=e.tags.templateParam?.flat(3),r=e.tags.typeRefName?.[0];return jt({...t,name:"string"==typeof r?r:r.ident,templateParams:n},e)})),Et=Rt("expression",((e,t)=>jt({...t},e)));const St=Rt("stuff",((e,t)=>jt({...t},e))),Nt=Rt("memberRef",((e,t)=>{const{component:n,structRef:r,extra_components:a}=e.tags,o=n?.[0],s=r?.flat()[0],i=a?.flat()[0];return jt({...t,name:s,member:o,extraComponents:i},e)}));function $t(e){const{start:t,end:n,src:r}=e,a={kind:"name",start:t,end:n,name:r.slice(t,n)};return et(e,a),a}const Mt=Rt("module",((e,t)=>{const n=jt(t,{...e,start:0,end:e.src.length});return e.app.stable.moduleElem=n,n}));const Pt={before:it,after:lt},Tt={before:it,after:function(e){return ut(e,!1)}},Bt={before:function(e){ct("partial",e)},after:lt};function Rt(e,t){return{before:t=>{const n={kind:e,contents:[]};t.app.context.openElems.push(n)},after:n=>{const r=n.app.context.openElems.pop();console.assert(r&&r.kind===e);const a=t(n,{...r,start:n.start,end:n.end});return a&&et(n,a),a}}}function jt(e,t){const n=function(e,t){let{start:n}=e;const r=e.app.stable,{contents:a,end:o}=t,s=a.sort(((e,t)=>e.start-t.start)),i=[];for(const e of s)n<e.start&&i.push(c(e.start)),i.push(e),n=e.end;n<o&&i.push(c(o));return i;function c(e){return{kind:"text",start:n,end:e,srcModule:r.srcModule}}}(t,e);return{...e,contents:n}}const Ct="alias break case const const_assert continue continuing \n  default diagnostic discard else enable false fn for if \n  let loop override requires return struct switch true var while".split(/\s+/),At="NULL Self abstract active alignas alignof as asm asm_fragment async attribute auto await \n  become binding_array cast catch class co_await co_return co_yield coherent column_major \n  common compile compile_fragment concept const_cast consteval constexpr constinit crate \n  debugger decltype delete demote demote_to_helper do dynamic_cast \n  enum explicit export extends extern external fallthrough filter final finally friend from fxgroup \n  get goto groupshared highp impl implements import inline instanceof interface layout lowp \n  macro macro_rules match mediump meta mod module move mut mutable \n  namespace new nil noexcept noinline nointerpolation non_coherent noncoherent noperspective null nullptr \n  of operator package packoffset partition pass patch pixelfragment precise precision premerge \n  priv protected pub public readonly ref regardless register reinterpret_cast require resource restrict \n  self set shared sizeof smooth snorm static static_assert static_cast std subroutine super \n  target template this thread_local throw trait try type typedef typeid typename typeof \n  union unless unorm unsafe unsized use using varying virtual volatile wgsl where with writeonly yield".split(/\s+/),Ft=new Set(Ct.concat(At)),It=new e({word:/(?:(?:[_\p{XID_Start}][\p{XID_Continue}]+)|(?:[\p{XID_Start}]))/u,number:new RegExp(/(?:0[fh])|(?:[1-9][0-9]*[fh])/.source+/|(?:[0-9]*\.[0-9]+(?:[eE][+-]?[0-9]+)?[fh]?)/.source+/|(?:[0-9]+\.[0-9]*(?:[eE][+-]?[0-9]+)?[fh]?)/.source+/|(?:[0-9]+[eE][+-]?[0-9]+[fh]?)/.source+/|(?:0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?)/.source+/|(?:0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?)/.source+/|(?:0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?)/.source+/|(?:0[xX][0-9a-fA-F]+[iu]?)/.source+/|(?:0[iu]?)|(?:[1-9][0-9]*[iu]?)/.source),blankspaces:/[ \t\n\v\f\r\u{0085}\u{200E}\u{200F}\u{2028}\u{2029}]+/u,commentStart:/\/\/|\/\*/,symbol:t("& && -> @ / ! [ ] { } :: : , == = != >>= >> >= > <<= << <= < % - -- . + ++ | || ( ) ; * ~ ^ // /* */ += -= *= /= %= &= |= ^= _"),invalid:/[^]/});var Ot=class{stream;eolPattern=/[\n\v\f\u{0085}\u{2028}\u{2029}]|\r\n?/gu;blockCommentPattern=/\/\*|\*\//g;src;constructor(e){this.src=e,this.stream=new P(new T(e,It))}checkpoint(){return this.stream.checkpoint()}reset(e){this.stream.reset(e)}nextToken(){for(;;){const e=this.stream.nextToken();if(null===e)return null;const t=e.kind;if("blankspaces"!==t){if("commentStart"!==t){if("word"===t){const t=e;return Ft.has(e.text)&&(t.kind="keyword"),t}if("invalid"===t)throw new B("Invalid token "+e.text,e.span);return e}"//"===e.text?this.stream.reset(this.skipToEol(e.span[1])):this.stream.reset(this.skipBlockComment(e.span[1]))}}}skipToEol(e){return this.eolPattern.lastIndex=e,null===this.eolPattern.exec(this.src)?this.src.length:this.eolPattern.lastIndex}skipBlockComment(e){let t=e;for(;;){this.blockCommentPattern.lastIndex=t;const e=this.blockCommentPattern.exec(this.src);if(null===e)throw new B("Unclosed block comment!",[t,t]);if("*/"===e[0])return this.blockCommentPattern.lastIndex;if("/*"!==e[0])throw new Error("Unreachable, invalid block comment pattern");t=this.skipBlockComment(this.blockCommentPattern.lastIndex)}}nextTemplateStartToken(){const e=this.stream.checkpoint(),t=this.nextToken();return this.stream.reset(e),null===t||"symbol"!==t.kind?null:"<"===t.text?this.isTemplateStart(t.span[1])?(this.stream.reset(t.span[1]),t):(this.stream.reset(e),null):null}nextTemplateEndToken(){const e=this.stream.checkpoint(),t=this.nextToken();if(this.stream.reset(e),null===t)return null;if("symbol"===t.kind&&">"===t.text[0]){const e=t.span[0];return this.stream.reset(e+1),{kind:"symbol",span:[e,e+1],text:">"}}return null}isTemplateStart(e){this.stream.reset(e);let t=1;for(;;){const e=this.stream.nextToken();if(null===e)return!1;if("symbol"===e.kind)if("<"===e.text)t+=1;else if(">"===e.text[0]){if(">"===e.text||">="===e.text)t-=1;else{if(">>="!==e.text&&">>"!==e.text)throw new Error("This case should never be reached, looks like we forgot one of the tokens that start with >");t-=2}if(t<=0)return!0}else if("("===e.text)this.skipBracketsTo(")");else if("["===e.text)this.skipBracketsTo("]");else if("=="===e.text||"!="===e.text||";"===e.text||"{"===e.text||":"===e.text||"&&"===e.text||"||"===e.text)return!1}}skipBracketsTo(e){for(;;){const t=this.stream.nextToken();if(null===t){const e=this.stream.checkpoint();throw new B("Unclosed bracket!",[e,e])}if("symbol"===t.kind)if("("===t.text)this.skipBracketsTo(")");else if("["===t.text)this.skipBracketsTo("]");else if(t.text===e)return}}};const Dt=n((e=>e.nextTemplateStartToken())),Lt=n((e=>e.nextTemplateEndToken())),Ut=r(a("keyword",["true","false"]).map((function(e){return{kind:"literal",value:e.text,span:e.span}})),o(s("symbol","("),i((()=>Wt)),s("symbol",")")).map((function(e){return{kind:"parenthesized-expression",expression:e}})),c("word").map((function(e){return{kind:"translate-time-feature",name:e.text,span:e.span}}))),qt=r(l(s("symbol","!").map((function(e){return{value:e.text,span:e.span}})),i((()=>qt))).map((function([e,t]){return{kind:"unary-expression",operator:e,expression:t}})),Ut),Wt=l(qt,r(u(l(s("symbol","||").map(Yt),d(qt,"invalid expression, expected expression"))),u(l(s("symbol","&&").map(Yt),d(qt,"invalid expression, expected expression"))),p().map((()=>[])))).map((function([e,t]){let n=e;for(const[e,r]of t)n={kind:"binary-expression",operator:e,left:n,right:r};return n})),Gt=m(l("@","if"),f(o("(",i((()=>Wt)),l(g(","),")"))).map(Zt)).map((function(e){return{kind:"@if",param:e}})).ptag("attr_variant"),zt=m(l("@","elif"),f(o("(",i((()=>Wt)),l(g(","),")"))).map(Zt)).map((function(e){return{kind:"@elif",param:e}})).ptag("attr_variant"),Xt=m(l("@","else"),p).map((function(){return{kind:"@else"}})).ptag("attr_variant"),Jt=h(Gt.collect(bt)),Vt=h(zt.collect(bt)),Ht=h(Xt.collect(bt));function Zt(e){return{kind:"translate-time-expression",expression:e.value,span:e.span}}function Yt(e){return{value:e.text,span:e.span}}const Kt=b("word"),Qt=b("keyword"),en=x("::",r(Kt,Qt,"package","super")),tn=b("number");function nn(e,t){return{kind:"import-statement",segments:e,finalSegment:t}}function rn(e){return{kind:"import-segment",name:e}}function an(e,t){return{kind:"import-item",name:e,as:t}}function on(e,t){return t.segments=e.concat(t.segments),t}let sn=null;const cn=l(m(v(r("super","package","import","as")),r(Kt,Qt)),r(m("::",d(r(i((()=>sn)),i((()=>cn))),"invalid import, expected '{' or name")),m("as",d(Kt,"invalid alias, expected name")).map((e=>an("",e))),p().map((()=>an(""))))).map((([e,t])=>"import-collection"===t.kind?nn([rn(e)],t):"import-statement"===t.kind?on([rn(e)],t):"import-item"===t.kind?(t.name=e,nn([],t)):void A(t)));sn=o("{",x(",",(()=>cn)).map((function(e){return{kind:"import-collection",subtrees:e}})),d("}","invalid import collection, expected }"));const ln=r(_("package",d("::","invalid import, expected '::'")).map((e=>[rn(e)])),u(_("super",d("::","invalid import, expected '::'")).map(rn))),un=o("import",k({relative:g(ln),collection_or_statement:d(r(sn,cn),"invalid import, expected { or name")}).map((({relative:e,collection_or_statement:t})=>"import-statement"===t.kind?on(e??[],t):nn(e??[],t))),d(";","invalid import, expected ';'"));function dn(e){return e.map((e=>({kind:"attribute",attribute:e,contents:[],start:0,end:0})))}const pn=f(l(y(r(Gt,zt,Xt)),un)).map((({value:[e,t],span:n})=>{const r={kind:"import",imports:t,start:n[0],end:n[1]};return e.length>0?{...r,attributes:dn(e)}:r})),mn=h(y(pn).ptag("owo").collect((function(e){const t=e.tags.owo?.[0];for(const n of t)e.app.stable.imports.push(n.imports),et(e,n)})));if(w){const e={import_collection:sn,import_path_or_item:cn,import_relative:ln,import_statement:pn,weslImports:mn};Object.entries(e).forEach((([e,t])=>{t.setTraceName(e)}))}const fn=g(l(Dt,x(",",(()=>An)),d(Lt,"invalid template, expected '>'"))),gn=r("private","workgroup","uniform","function"),hn=l("storage",g(l(",",r("read","read_write")))),bn=g(l(Dt,r(hn,gn),d(Lt,"invalid template, expected '>'"))),xn=l(en.collect(tt),fn),vn=r("true","false",tn),_n=l("(",(()=>Bn),d(")","invalid expression, expected ')'")),kn=r(vn,_n,l(xn,g(i((()=>Fn))))),yn=u(r(m(".",Kt),E(o("[",(()=>Bn),d("]","invalid expression, expected ']'"))))),wn=h(l(en.collect(tt,"structRef"),l(".",Kt.collect($t,"component")),g(yn.collect(St,"extra_components"))).collect(Nt)),En=r(l(a("symbol",["!","&","*","-","~"]),(()=>En)),r(wn,l(kn,g(yn)))),Sn=r(u(l("&",En)),u(l("^",En)),u(l("|",En))),Nn=r("%","*","/"),$n=r("+","-"),Mn=e=>{const t=l("<<",En),n=l(">>",En),a=l(y(l(Nn,En)),y(l($n,En,y(l(Nn,En)))));return e?r(t,a):r(t,n,a)},Pn=e=>l(Mn(e),g(l(a("symbol",e?["<","<=","!=","=="]:[">",">=","<","<=","!=","=="]),En,Mn(e)))),Tn=e=>l(En,r(Sn,l(Pn(e),e?p():r(u(l("||",l(En,Pn(!1)))),u(l("&&",l(En,Pn(!1)))),p().map((()=>[])))))),Bn=Tn(!1),Rn=Tn(!0),jn=l(en.collect(tt,"typeRefName"),(()=>fn)).collect(wt),Cn=h(jn).ctag("typeRefElem"),An=r(Cn.ctag("templateParam"),Rn.collect(Et,"templateParam")),Fn=l("(",S(",",Bn),d(")","invalid fn arguments, expected ')'"));if(w){const e={opt_template_list:fn,other_address_space:gn,storage_address_space:hn,var_template_list:bn,template_elaborated_ident:xn,primary_expression:kn,literal:vn,paren_expression:_n,component_or_swizzle:yn,simple_component_reference:wn,unary_expression:En,bitwise_post_unary:Sn,multiplicative_operator:Nn,additive_operator:$n,expression:Bn,template_arg_expression:Rn,std_type_specifier:jn,type_specifier:Cn,template_parameter:An,argument_expression_list:Fn};Object.entries(e).forEach((([e,t])=>{t.setTraceName(e)}))}const In=c("word").map((function(e){return{kind:"name",name:e.text,start:e.span[0],end:e.span[1]}})),On=l(In,g(m(".",d(In,"invalid diagnostic rule name, expected name")))),Dn=o("(",d(N(In,",",On),"invalid diagnostic control, expected rule name"),l(g(","),d(")","invalid diagnostic control, expected ')'"))),Ln=S(",",In,{requireOne:!0}),Un=h(m("@",r(r("compute","const","fragment","invariant","must_use","vertex").map((e=>function([e,t]){return{kind:"@attribute",name:e,params:t}}([e,[]]))),m("interpolate",d(o("(",Ln,")"),"invalid @interpolate, expected '('")).map((function(e){return{kind:"@interpolate",params:e}})),m("builtin",d(o("(",In,")"),"invalid @builtin, expected '('")).map((function(e){return{kind:"@builtin",param:e}})),m("diagnostic",d(Dn,"invalid @diagnostic, expected '('")).map((function([e,t]){return{kind:"@diagnostic",severity:e,rule:t}}))).ptag("attr_variant")).collect(bt)),qn=h(m("@",r(l(r("workgroup_size","align","binding","blend_src","group","id","location","size").ptag("name"),d((()=>Wn),"invalid attribute, expected '('")),l(Kt.ptag("name"),g((()=>Wn))))).collect(yt)),Wn=o("(",S(",",f(i((()=>Bn))).collect(Et,"attrParam")),d(")","invalid attribute arguments, expected ')'")),Gn=r(Un,qn).ctag("attribute"),zn=r(Jt,Vt,Ht,Un,qn).ctag("attribute"),Xn=y(zn),Jn=y(Gn),Vn=d(Kt.collect(rt,"type_name"),"invalid type name, expected a name"),Hn=d(Kt.collect(rt,"fn_name"),"missing fn name"),Zn=h(l(Kt.collect(nt,"decl_elem"),g(l(":",Cn))).collect(ot)).ctag("var_name"),Yn=d(Zn,"invalid ident"),Kn=h(d(l(Kt.collect(rt,"decl_elem"),g(l(":",Cn.collect(Tt,"decl_type")))).collect(ot),"expected identifier")).ctag("var_name"),Qn=h(l(Xn,Kt.collect($t,"nameElem"),d(":","invalid struct member, expected ':'"),d(Cn,"invalid struct member, expected type specifier")).collect(ht)).ctag("members"),er=l(Xn.collect((e=>e.tags.attribute),"attributes"),"struct",d(Vn,"invalid struct, expected name"),l(d("{","invalid struct, expected '{'"),x(",",Qn),d("}","invalid struct, expected '}'")).collect(Pt,"struct_scope")).collect(gt),tr=l(en.collect(tt),(()=>fn),Fn),nr=h(l(Xn.collect((e=>e.tags.attribute),"attributes"),Kt.collect(nt,"decl_elem"),g(l(":",d(Cn,"invalid fn parameter, expected type specifier"))).collect(ot,"param_name")).collect(ft)).ctag("fn_param"),rr=l("(",S(",",nr),")"),ar=l("var",(()=>bn),Yn,g(l("=",(()=>Bn)))).collect(dt("var")),or=l(Xn,"var",(()=>bn),Kn,g(l("=",(()=>Bn.collect(Tt,"decl_scope")))),";").collect(dt("gvar")).collect(Bt),sr=l(Xn,$("{"),y((()=>_r)),d("}","invalid block, expected }")).collect(vt),ir=h(l(Xn,l($("{"),y((()=>_r)),d("}","invalid block, expected '}'")).collect(Pt)).collect(vt)),cr=l(Xn,r(tr,(()=>yr),(()=>wr))),lr=l(Xn,r(tr,(()=>wr))),ur=l("for",l(d("(","invalid for loop, expected '('"),g(cr),d(";","invalid for loop, expected ';'"),g(Bn),d(";","invalid for loop, expected ';'"),g(lr),d(")","invalid for loop, expected ')'"),sr).collect(Pt)),dr=l("if",d(l(Bn,ir),"invalid if statement"),y(l("else","if",d(l(Bn,ir),"invalid else if branch"))),g(l("else",d(ir,"invalid else branch, expected '{'")))),pr=l("loop",Jn,d(l("{",y((()=>_r)),g(h(l(Xn,"continuing",Jn,"{",y((()=>_r)),h(g(l(Xn,l("break","if",Bn,";")).collect(vt))),"}").collect(vt).collect(Pt))),"}"),"invalid loop statement")).collect(Pt),mr=r("default",Bn),fr=h(l(Xn,r(l("case",S(",",mr,{requireOne:!0}),g(":"),ir),l("default",g(":"),ir)).collect(_t))),gr=l(Xn,"{",u(fr),"}"),hr=l("switch",Bn,gr),br=l("while",Bn,ir),xr=r(ur,dr,pr,hr,br,l("break",";"),l("continue",d(";","invalid statement, expected ';'")),l(";"),(()=>$r),l("discard",d(";","invalid statement, expected ';'")),l("return",g(Bn),d(";","invalid statement, expected ';'")),l(tr,d(";","invalid statement, expected ';'")),l((()=>yr),d(";","invalid statement, expected ';'")),l((()=>wr),d(";","invalid statement, expected ';'"))),vr=h(l(Xn,xr).collect(vt).collect(Bt)),_r=r(ir,h(l(Jn,xr)),vr),kr=r(wn,l(en.collect(tt),g(yn)),l("(",(()=>kr),")",g(yn)),l("&",(()=>kr)),l("*",(()=>kr))),yr=h(r(ar,l("const",Yn,d("=","invalid const declaration, expected '='"),Bn),l("let",Yn,d("=","invalid let declaration, expected '='"),Bn))),wr=r(l(kr,r("=","<<=",">>=","%=","&=","*=","+=","-=","/=","^=","|="),Bn),l(kr,r("++","--")),l("_","=",Bn)),Er=l(h(Xn.collect((e=>e.tags.attribute||[]))).ctag("fn_attributes"),$("fn"),d(Hn,"invalid fn, expected function name"),l(d(rr,"invalid fn, expected function parameters").collect(Tt,"header_scope"),g(l("->",Xn.collect((e=>e.tags.attribute),"return_attributes"),Cn.ctag("return_type").collect(Tt,"return_scope"))),d(sr,"invalid fn, expected function body").ctag("body_statement").collect(Tt,"body_scope"))).collect(Bt,"fn_partial_scope").collect(mt),Sr=r(l(Xn,"override",Kn,l(g(l("=",Bn.collect(Tt,"decl_scope")))),";").collect(dt("override")),l(Xn,"const",Kn,"=",l(Bn).collect(Tt,"decl_scope"),";").collect(dt("const"))).collect(Bt),Nr=l(Xn.collect((e=>e.tags.attribute),"attributes"),"alias",d(Kt,"invalid alias, expected name").collect(rt,"alias_name"),d("=","invalid alias, expected '='"),d(Cn,"invalid alias, expected type").collect(Pt,"alias_scope"),d(";","invalid alias, expected ';'")).collect(pt),$r=h(l(Xn,"const_assert",d(Bn,"invalid const_assert, expected expression"),d(";","invalid statement, expected ';'")).collect(xt)).ctag("const_assert"),Mr=h(l(Xn,_(r(m("diagnostic",Dn).map((function([e,t]){return{kind:"diagnostic",severity:e,rule:t}})),m("enable",Ln).map((function(e){return{kind:"enable",extensions:e}})),m("requires",Ln).map((function(e){return{kind:"requires",extensions:e}}))).ptag("directive"),";")).collect((function(e){const{start:t,end:n}=e,r=e.tags.directive?.flat()[0],a={kind:"directive",attributes:e.tags.attribute?.flat(),start:t,end:n,directive:r};return et(e,a),a}))),Pr=h(r(Er,or,Sr,";",Nr,$r.collect((function(e){const t=e.tags.const_assert?.flat()[0],n=e.app.stable;n.moduleAsserts||(n.moduleAsserts=[]),n.moduleAsserts.push(t)})),er)),Tr=l(mn,y(Mr),y(Pr),d(M(),"invalid WESL, expected EOF")).collect(Mt,"collectModule");if(w){const e={name:In,diagnostic_rule_name:On,diagnostic_control:Dn,name_list:Ln,special_attribute:Un,if_attribute:Jt,elif_attribute:Vt,else_attribute:Ht,normal_attribute:qn,attribute_argument_list:Wn,attribute_no_if:Gn,attribute_incl_if:zn,opt_attributes:Xn,opt_attributes_no_if:Jn,globalTypeNameDecl:Vn,fnNameDecl:Hn,optionally_typed_ident:Zn,req_optionally_typed_ident:Yn,global_ident:Kn,struct_member:Qn,struct_decl:er,fn_call:tr,fnParam:nr,fnParamList:rr,local_variable_decl:ar,global_variable_decl:or,unscoped_compound_statement:sr,compound_statement:ir,for_init:cr,for_update:lr,for_statement:ur,if_statement:dr,loop_statement:pr,case_selector:mr,switch_clause:fr,switch_body:gr,switch_statement:hr,while_statement:br,regular_statement:xr,conditional_statement:vr,statement:_r,lhs_expression:kr,variable_or_value_statement:yr,variable_updating_statement:wr,fn_decl:Er,global_value_decl:Sr,global_alias:Nr,const_assert:$r,global_directive:Mr,global_decl:Pr,weslRoot:Tr,qualified_ident:en,word:Kt};Object.entries(e).forEach((([e,t])=>{t.setTraceName(e)}))}var Br=class extends Error{span;src;constructor(e){const t=e.src.src,[n,r]=Y(e.cause.span[0],t);let a=`${e.src.debugFilePath}:${n}:${r}`;a+=` error: ${e.cause.message}\n`,a+=K(t,e.cause.span).join("\n"),super(a,{cause:e.cause}),this.span=e.cause.span,this.src=e.src}};function Rr(e){const t=new Ot(e.src),n=jr(e),r={stream:t,appState:n};try{if(null===Tr.parse(r))throw new Error("parseWESL failed")}catch(t){if(!(t instanceof B))throw t;{const[n,r]=Y(t.span[0],e.src),a=new Br({cause:t,src:e});ne({url:e.debugFilePath,text:e.src,error:a,lineNumber:n,lineColumn:r,length:t.span[1]-t.span[0]})}}return n.stable}function jr(e){const t=fe(null);return{context:{scope:t,openElems:[]},stable:{srcModule:e,imports:[],rootScope:t,moduleElem:null}}}function Cr(){return jr({modulePath:"package::test",debugFilePath:"./test.wesl",src:""})}function Ar(e,t){if(e._flatImports&&!t)return e._flatImports;const n=e.moduleElem.contents.filter((e=>"import"===e.kind)),r=(t?se(n,t):n).map((e=>e.imports)).flatMap(Qe);return t||(e._flatImports=r),r}const Fr="bitcast all any select arrayLength \n  abs acos acosh asin asinh atan atanh atan2 ceil clamp cos cosh \n  countLeadingZeros countOneBits countTrailingZeros cross \n  degrees determinant distance dot dot4U8Packed dot4I8Packed \n  exp exp2 extractBits faceForward firstLeadingBit firstTrailingBit \n  floor fma fract frexp insertBits inverseSqrt ldexp length log log2\n  max min mix modf normalize pow quantizeToF16 radians reflect refract\n  reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh\n  transpose trunc\n  dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth \n  fwidthCoarse fwidthFine\n  textureDimensions textureGather textureGatherCompare textureLoad\n  textureNumLayers textureNumLevels textureNumSamples\n  textureSample textureSampleBias textureSampleCompare textureSampleCompareLevel\n  textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge\n  textureStore\n  atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin\n  atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak\n  pack4x8snorm pack4x8unorm pack4xI8 pack4xU8 pack4xI8Clamp pack4xU8Clamp\n  pack2x16snorm pack2x16unorm pack2x16float\n  unpack4x8snorm unpack4x8unorm unpack4xI8 unpack4xU8 \n  unpack2x16snorm unpack2x16unorm unpack2x16float\n  storageBarrier textureBarrier workgroupBarrier workgroupUniformLoad\n  subgroupAdd subgroupAll subgroupAnd subgroupAny subgroupBallot \n  subgroupBroadcast subgroupBroadcastFirst subgroupElect \n  subgroupExclusiveAdd subgroupExclusiveMul subgroupInclusiveAdd \n  subgroupInclusiveMul subgroupMax subgroupMin subgroupMul subgroupOr \n  subgroupShuffle subgroupShuffleUp subgroupShuffleXor subgroupXor\n  quadBroadcast quadSwapDiagonal quadSwapX quadSwapY".split(/\s+/),Ir="\n  texture_1d texture_2d texture_2d_array texture_3d \n  texture_cube texture_cube_array\n",Or="\n  texture_multisampled_2d texture_depth_multisampled_2d\n",Dr="\n  texture_storage_1d texture_storage_2d texture_storage_2d_array \n  texture_storage_3d\n",Lr=`array atomic bool f16 f32 i32 \n  mat2x2 mat2x3 mat2x4 mat3x2 mat3x3 mat3x4 mat4x2 mat4x3 mat4x4\n  mat2x2f mat2x3f mat2x4f mat3x2f mat3x3f mat3x4f\n  mat4x2f mat4x3f mat4x4f\n  mat2x2h mat2x3h mat2x4h mat3x2h mat3x3h mat3x4h\n  mat4x2h mat4x3h mat4x4h\n  u32 vec2 vec3 vec4 ptr\n  vec2i vec3i vec4i vec2u vec3u vec4u\n  vec2f vec3f vec4f vec2h vec3h vec4h\n  ${Ir}\n  ${Or}\n  texture_external\n  ${Dr}\n  texture_depth_2d texture_depth_2d_array texture_depth_cube\n  texture_depth_cube_array\n  sampler sampler_comparison\n  rgba8unorm rgba8snorm rgba8uint rgba8sint\n  rgba16uint rgba16sint rgba16float \n  r32uint r32sint r32float rg32uint rg32sint rg32float\n  rgba32uint rgba32sint rgba32float\n  bgra8unorm`.split(/\s+/),Ur="read write read_write \n  function private workgroup uniform storage\n  rgba8unorm rgba8snorm rgba8uint rgba8sint \n  rgba16uint rgba16sint rgba16float \n  r32uint r32sint r32float rg32uint rg32sint rg32float\n  rgba32uint rgba32sint rgba32float bgra8unorm".split(/\s+/);function qr(e){return Lr.includes(e)}function Wr(e){const{rootAst:t,resolver:n,virtuals:r,accumulateUnbound:a}=e,{conditions:o={},mangler:s=Ye}=e,i=Gr(t.rootScope,o),{globalNames:c,knownDecls:l}=function(e){const t=new Set,n=new Set;return e.forEach((e=>{e.mangledName=e.originalName,t.add(e.originalName),n.add(e)})),{globalNames:t,knownDecls:n}}(i),u={resolver:n,conditions:o,knownDecls:l,virtuals:r,mangler:s,foundScopes:new Set,globalNames:c,globalStatements:new Map,unbound:a?[]:void 0},d=i.map((e=>[e.originalName,e])),p={decls:new Map(d),parent:null};return{decls:Jr(t.rootScope,u,p,!0),globalNames:c,newStatements:[...u.globalStatements.values()],unbound:u.unbound}}function Gr(e,t){const n=[];let r=!1;for(const a of e.contents)if("decl"===a.kind){C(a.declElem);const e=ie(ce(a.declElem.attributes),r,t);r=e.nextElseState,e.valid&&n.push(a)}else if("partial"===a.kind){const e=ie(a.condAttribute,r,t);r=e.nextElseState,e.valid&&Zr(a,n)}return n}function zr(e,t,n){return function(e,t){const n=e;if(n._validRootDecls)return n._validRootDecls;const r=Gr(e,t);return n._validRootDecls=r,r}(e,n).find((e=>e.originalName===t))}function Xr(e){const{declElem:t}=e;return!!t&&["alias","const","override","fn","struct","gvar"].includes(t.kind)}function Jr(e,t,n,r=!1){const{dontFollowDecls:a,foundScopes:o}=t;if(o.has(e))return[];o.add(e);const{newGlobals:s,newFromChildren:i}=function(e,t,n,r){const a=[],o=[];let s=!1;return e.contents.forEach((e=>{if("decl"===e.kind)r||n.decls.set(e.originalName,e);else if("ref"===e.kind){const r=function(e,t,n){const{resolver:r,conditions:a,unbound:o,virtuals:s}=n;if(e.refersTo||e.std)return;const i=Hr(e,t)??function(e,t,n,r,a){const o=Ar(e.ast,n),s=e.originalName.split("::"),i=function(e,t){for(const n of t)if(n.importPath.at(-1)===e.at(0))return[...n.modulePath,...e.slice(1)]}(s,o)??function(e){if(e.length>1)return e}(s);if(!i)return void(a&&a.push(s));const c=function(e,t,n,r={},a){const o=function(e,t){const n=e.lastIndexOf("super");if(-1===n)return e;const r=t.modulePath.split("::").slice(0,-(n+1)),a=e.slice(n+1);return[...r,...a]}(e,t).slice(0,-1).join("::"),s=n.resolveModule(o)??function(e,t={},n){if(!n)return;const r=n[e];return r?(r.ast||(r.ast=Rr({modulePath:e,debugFilePath:e,src:r.fn(t)})),r.ast):void 0}(e[0],r,a);if(!s)return;const i=z(e),c=zr(s.rootScope,i,r);if(c)return{decl:c,moduleAst:s}}(i,e.ast.srcModule,t,n,r);c||(a?a.push(i):re(e,`module not found for '${i.join("::")}'`));return c}(e,r,a,s,o);if(i)return e.refersTo=i.decl,function(e,t,n){const{decl:r,moduleAst:a}=t,{knownDecls:o,globalNames:s,mangler:i,globalStatements:c}=n;if(o.has(r))return;if(o.add(r),function(e,t,n,r,a){if(t.mangledName)return;let o;if(Xr(t)){const s=e.lastIndexOf("::");o=a(t,r,-1===s?e:e.slice(s+2),n)}else o=t.originalName;t.mangledName=o,n.add(o)}(e.originalName,r,s,r.srcModule,i),Xr(r))return a.moduleAsserts?.forEach((e=>{c.set(e,{srcModule:r.srcModule,elem:e})})),r}(e,i,n);qr(c=e.originalName)||function(e){return Fr.includes(e)||qr(e)}(c)||function(e){return Ur.includes(e)}(c)?e.std=!0:o||re(e,`unresolved identifier '${e.originalName}'`);var c}(e,n,t);r&&a.push(r)}else{const r=function(e,t,n,r){const{valid:a,nextElseState:o}=ie(e.condAttribute,r,n.conditions);return a?{decls:Jr(e,n,"scope"===e.kind?Je(t):t),nextElseState:o}:{decls:[],nextElseState:o}}(e,n,t,s);r&&(o.push(...r.decls),s=r.nextElseState)}})),{newGlobals:a,newFromChildren:o}}(e,t,n,r);return[s,i,a?[]:Vr(s,t)].flat()}function Vr(e,t){const{conditions:n}=t;return e.flatMap((e=>{const r=e.dependentScope;if(!r)return[];const a=function(e,t){C(e.isGlobal,Xe(e));let n=e.containingScope;for(;n.parent;)n=n.parent;C("scope"===n.kind);const r=n;if(r._scopeDecls)return r._scopeDecls;const a=Gr(n,t).map((e=>[e.originalName,e])),o={decls:new Map(a)};return r._scopeDecls=o,o}(e,n);return a?Jr(r,t,Je(a)):[]}))}function Hr(e,t){const n=t.decls.get(e.originalName);return n?{decl:n,moduleAst:e.ast}:t.parent?Hr(e,t.parent):void 0}function Zr(e,t){for(const n of e.contents)"decl"===n.kind?t.push(n):"partial"===n.kind&&Zr(n,t)}var Yr=class{sourceMap;constructor(e){this.sourceMap=e}createShaderModule(e,t){if(!("injectError"in e))return e.createShaderModule({...t,code:this.dest});e.pushErrorScope("validation");const n=e.createShaderModule({...t,code:this.dest});e.popErrorScope();const{promise:r,resolve:a}=Promise.withResolvers();return e.injectError("validation",r),n.getCompilationInfo().then((e=>{if(0===e.messages.length)return void a(null);const t=this.mapGPUCompilationInfo(e),r=function(e,t){if(0===e.messages.length)return null;let n=`Compilation log for [Invalid ShaderModule (${t.label||"unlabled"})]:\n`;const r=e.messages.filter((e=>"error"===e.type)).length;r>0&&(n+=`${r} error(s) generated while compiling the shader:\n`);for(const t of e.messages){const{lineNum:e,linePos:r}=t;n+=`${t.module.url}:${e}:${r}`,n+=` ${t.type}: ${t.message}\n`;const a=t.module.text;a&&(n+=K(a,[t.offset,t.offset+t.length]).join("\n"))}return n}(t,n);C(null!==r);const o=new GPUValidationError(r);o.cause=new Error("createShaderModule failed"),o.compilationInfo=t,a(o)})),n}get dest(){return this.sourceMap.dest.text}mapGPUCompilationInfo(e){return{__brand:e.__brand,messages:e.messages.map((e=>this.mapGPUCompilationMessage(e)))}}mapGPUCompilationMessage(e){const t=this.sourceMap,n=t.destToSrc(e.offset),r=(e.length>0?t.destToSrc(e.offset+e.length):n).position-n.position,[a,o]=Y(n.position,n.src.text);return{__brand:e.__brand,type:e.type,message:e.message,offset:n.position,length:r,lineNum:a,linePos:o,module:{url:n.src.path??"",text:n.src.text}}}};function Kr(e){const t=e.split("/").filter((e=>"."!==e)),n=[];return t.forEach((e=>{""!==e&&(".."===e&&n.length&&".."!==n[n.length-1]?n.pop():n.push(e))})),n.join("/")}function Qr(e){const t=e.lastIndexOf("/"),n=-1===t?0:t+1,r=e.indexOf(".",n),a=-1===r?e.length:r;return e.slice(0,a)}const ea=/^lib\.w[eg]sl$/i;var ta=class{astCache=new Map;sources;packageName;debugWeslRoot;constructor(e,t={}){const{packageName:n="package",debugWeslRoot:r}=t;this.sources=e,this.packageName=n,this.debugWeslRoot=oa(r)}resolveModule(e){const t=this.astCache.get(e);if(t)return t;const n=this.findSource(e);if(!n)return;const r=Rr({modulePath:e,debugFilePath:this.modulePathToDebugPath(e),src:n});return this.astCache.set(e,r),r}findSource(e){if(this.sources[e])return this.sources[e];const t=this.moduleToFilePath(e);return sa(this.sources,t)}moduleToFilePath(e){const t=e.split("::");return t[0]!==this.packageName&&"package"!==t[0]?e:t.slice(1).join("/")}modulePathToDebugPath(e){const t=this.moduleToFilePath(e);return this.debugWeslRoot+t+".wesl"}allModules(){for(const e of Object.keys(this.sources)){const t=aa(e,this.packageName,"package"!==this.packageName);this.resolveModule(t)}return this.astCache.entries()}},na=class{resolvers;constructor(e){this.resolvers=e}resolveModule(e){for(const t of this.resolvers){const n=t.resolveModule(e);if(n)return n}}},ra=class{astCache=new Map;sources;packageName;debugWeslRoot;constructor(e,t){this.sources=e.modules,this.packageName=e.name,this.debugWeslRoot=oa(t)}resolveModule(e){if(e!==this.packageName&&!e.startsWith(this.packageName+"::"))return;const t=this.astCache.get(e);if(t)return t;const n=this.findSource(e);if(!n)return;const r=Rr({modulePath:e,debugFilePath:this.modulePathToDebugPath(e),src:n});return this.astCache.set(e,r),r}findSource(e){const t=this.moduleToFilePath(e);if(e===this.packageName){const e=sa(this.sources,"lib",["wesl","wgsl"]);if(e)return e}return sa(this.sources,t)}moduleToFilePath(e){const t=e.split("::");return t[0]!==this.packageName?e:t.slice(1).join("/")}modulePathToDebugPath(e){const t=this.moduleToFilePath(e);return this.debugWeslRoot+this.packageName+"/"+t+".wesl"}};function aa(e,t,n){if(e.includes("::"))return e;if(n&&ea.test(e))return t;return t+"::"+Qr(Kr(e)).replaceAll("/","::")}function oa(e){return void 0===e?"./":""===e?"":e.endsWith("/")?e:e+"/"}function sa(e,t,n=["wesl","wgsl"]){for(const r of["","./"]){const a=r+t;if(e[a])return e[a];for(const t of n){const n=`${a}.${t}`;if(e[n])return e[n]}}}async function ia(e){return new Yr(ca(e))}function ca(e){const{weslSrc:t,libs:n=[],packageName:r,debugWeslRoot:a}=e,{resolver:o}=e,s=[];if(o)s.push(o);else{if(!t)throw new Error("Either resolver or weslSrc must be provided");s.push(new ta(t,{packageName:r,debugWeslRoot:a}))}if(n.length>0){const e=function(e,t){return function(e){const t=[],n=new Set;function r(e){n.has(e)||(n.add(e),t.push(e),e.dependencies?.forEach(r))}return e.forEach(r),t}(e).map((e=>new ra(e,t)))}(n,a);s.push(...e)}return la({resolver:1===s.length?s[0]:new na(s),...e})}function la(e){const{transformedAst:t,newDecls:n,newStatements:r}=ua(e);return R.build(function(e,t,n,r,a={}){const o=r.map((e=>function(e,t){const{elem:n,srcModule:r}=e,{src:a,debugFilePath:o}=r,s=new R({text:a,path:o});return _e({srcBuilder:s,rootElems:[n],conditions:t}),s.addNl(),s}(e,a))),s=new R({text:t.src,path:t.debugFilePath});_e({srcBuilder:s,rootElems:[e],conditions:a,extracting:!1});const i=n.map((e=>function(e,t){const{src:n,debugFilePath:r}=e.srcModule,a=new R({text:n,path:r});return _e({srcBuilder:a,rootElems:[e.declElem],conditions:t,skipConditionalFiltering:!0}),a}(e,a)));return[...o,s,...i]}(t.moduleElem,t.srcModule,n,r,e.conditions))}function ua(e){const{resolver:t,mangler:n,constants:r,config:a}=e,{rootModuleName:o="main",conditions:s={}}=e,i=function(e,t,n){const r=e.resolveModule(t);if(!r)throw w&&console.log(`root module not found: ${t} (from ${n})`),new Error(`Root module not found: ${n}`);return r}(t,da(o),o),{globalNames:c,decls:l,newStatements:u}=Wr({rootAst:i,resolver:t,conditions:s,virtuals:pa(e.virtualLibs,r),mangler:n});return{transformedAst:ma(i,c,a),newDecls:l,newStatements:u}}function da(e){return e.includes("::")?e:e.includes("/")||e.endsWith(".wesl")||e.endsWith(".wgsl")?"package::"+e.replace(/\.(wesl|wgsl)$/,"").replace(/^\.\//,"").replaceAll("/","::"):"package::"+e}function pa(e,t){let n=e;if(t){const e=()=>Object.entries(t).map((([e,t])=>`const ${e} = ${t};`)).join("\n");n={...n,constants:e}}return n&&Z(n,(e=>({fn:e})))}function ma(e,t,n){const{moduleElem:r,srcModule:a}=e,o={moduleElem:r,srcModule:a,globalNames:t,notableElems:{}};return V(n?.plugins??[],(e=>e.transform)).reduce(((e,t)=>t(e)),o)}function fa(e,t){t(e),e.contents&&e.contents.forEach((e=>{fa(e,t)}))}function ga(e){const{kind:t}=e.attribute;if("@attribute"===t){const{params:t}=e.attribute;return void 0===t||0===t.length?"@"+e.attribute.name:`@${e.attribute.name}(${t.map((e=>va(e))).join(", ")})`}return"@builtin"===t?"@builtin("+e.attribute.param.name+")":"@diagnostic"===t?"@diagnostic"+Me(e.attribute.severity,e.attribute.rule):"@if"===t?`@if(${Pe(e.attribute.param.expression)})`:"@elif"===t?`@elif(${Pe(e.attribute.param.expression)})`:"@else"===t?"@else":"@interpolate"===t?`@interpolate(${e.attribute.params.map((e=>e.name)).join(", ")})`:void A(t)}function ha(e){return`<${e.map(ba).join(", ")}>`}function ba(e){return void 0===e?"?":"string"==typeof e?e:"expression"===e.kind?va(e):"type"===e.kind?function(e){if(!e)return"?";const{name:t,templateParams:n}=e,r=n?ha(n):"";return`${xa(t)}${r}`}(e):void A(e)}function xa(e){if("string"==typeof e)return e;if(e.std)return e.originalName;const t=Be(e);return t.mangledName||t.originalName}function va(e){if("translate-time-expression"===e.kind)throw new Error("Not supported");return"expression"===e.kind||"stuff"===e.kind?e.contents.map((e=>{const{kind:t}=e;return"text"===t?e.srcModule.src.slice(e.start,e.end):"ref"===t?xa(e.ident):`?${e.kind}?`})).join(" "):"name"===e.kind?e.name:void A(e)}const _a=t(Dr);function ka(){return{transform:ya}}function ya(e){const t=structuredClone(e),{moduleElem:n,globalNames:r,notableElems:a}=t,o=Ea(n);wa(n,o);const s=o.flatMap((e=>Na(e,r))),i=Ma(n);i.forEach((({memberRef:e,struct:t})=>{Ta(e,t)})),i.forEach((({intermediates:e})=>{e.forEach((e=>{e.contents=[]}))}));const c=function(e){return e.contents.filter((e=>"struct"!==e.kind||!e.bindingStruct))}(n);return n.contents=[...s,...c],a.bindingStructs=o,{...t,moduleElem:n}}function wa(e,t){const n=function(e,t){for(const n of e){const{params:e}=n;for(const r of e){const e=((r.name?.typeRef?.name)?.refersTo)?.declElem,a=t.find((t=>t===e));if(a)return{fn:n,struct:a}}}}(e.contents.filter((e=>"fn"===e.kind)),t);if(n){const{fn:e,struct:t}=n;t.entryFn=e}}function Ea(e){const t=e.contents.filter((e=>"struct"===e.kind)).filter(Sa);return t.forEach((e=>{e.bindingStruct=!0})),t}function Sa(e){return e.members.some((({attributes:e})=>function(e){return!!e&&e.some((({attribute:e})=>"@attribute"===e.kind&&("binding"===e.name||"group"===e.name)))}(e)))}function Na(e,t){return e.members.map((e=>{const{typeRef:n,name:r}=e,{name:a}=n,o=n?.templateParams,s=Ke(r.name,t);e.mangledVarName=s,t.add(s);const i=e.attributes?.map(ga).join(" ")??"",c=function(e,t){if("ptr"===e.originalName){const e=t??[],n=[e[0]];return e[2]&&n.push(e[2]),{storage:ha(n),varType:ba(e?.[1])}}}(a,o)??function(e,t){if("string"!=typeof e)return{varType:(e.std?e.originalName:"??")+(t?ha(t):""),storage:""}}(a,o)??function(e,t){if(_a.test(e.originalName))return{varType:e+(t?ha(t):""),storage:""}}(a,o);if(!c)return console.log("unhandled case transforming member",a),$a(i,s,"","??");const{storage:l,varType:u}=c;return $a(i,s,l,u)}))}function $a(e,t,n,r){return{kind:"synthetic",text:`${e} var${n} ${t} : ${r};\n`}}function Ma(e){const t=[];return fa(e,(e=>{"memberRef"===e.kind&&t.push(e)})),V(t,Pa)}function Pa(e){const t=function(e){const t=Be(e).declElem;if(t&&"param"===t.kind){const e=t.name.typeRef?.name;if("string"!=typeof e){if(e?.std)return;const n=Be(e).declElem;return"struct"===n?.kind?{struct:n,intermediates:[t]}:void 0}}}(e.name.ident);if(t?.struct.bindingStruct)return{memberRef:e,...t}}function Ta(e,t){const n=e.member.name,r=t.members.find((e=>e.name.name===n));if(!r||!r.mangledVarName)return w&&console.log(`missing mangledVarName for ${n}`),{kind:"synthetic",text:n};const{extraComponents:a}=e,o=a?va(a):"",s={kind:"synthetic",text:r.mangledVarName+o};return e.contents=[s],s}async function Ba(e,t){if(!e)throw new Error("No GPU adapter");return e.requestDevice(t).then(Ra)}function Ra(e){const t=[];var n;return e.injectError=(n,r)=>{const a=t.findLast((e=>e.filter===n));void 0!==a?a.errors.push(r):r.then((t=>{null!==t&&function(t){e.addEventListener("uncapturederror",(e=>{if(!e.defaultPrevented)if("compilationInfo"in e.error){const t=e.error;if(t.compilationInfo)for(const e of t.compilationInfo.messages)ne({url:e.module.url,text:e.module.text??null,lineNumber:e.lineNum,lineColumn:e.linePos,length:e.length,error:new Error(e.type+": "+e.message)});else console.error(e.error.message)}else console.error(e.error.message)}),{once:!0}),e.dispatchEvent(new GPUUncapturedErrorEvent("uncapturederror",{error:t}))}(t)}))},e.pushErrorScope=(n=e.pushErrorScope,function(e){return t.push({filter:e,errors:[]}),n.call(this,e)}),e.popErrorScope=(e=>function(){const n=t.pop();if(void 0===n)throw new DOMException("popErrorScope called on empty error scope stack","OperationError");return n.errors.push(e.call(this)),Promise.all(n.errors).then((e=>e.find((e=>null!==e))??null))})(e.popErrorScope),e}t(Ir),t(Or);export{ra as BundleResolver,na as CompositeResolver,Yr as LinkedWesl,ta as RecordResolver,Br as WeslParseError,Ot as WeslStream,ca as _linkSync,Ae as astToString,Ie as attributeToString,ua as bindAndTransform,Wr as bindIdents,Jr as bindIdentsRecursive,ka as bindingStructsPlugin,jr as blankWeslParseState,be as childIdent,he as childScope,ge as containsScope,We as debugContentsToString,fe as emptyScope,K as errorHighlight,V as filterMap,H as findMap,Ma as findRefsToBindingStructs,Gr as findValidRootDecls,Ar as flatImports,U as groupBy,L as grouped,Xe as identToString,Xr as isGlobal,z as last,Ze as lengthPrefixMangle,ia as link,la as linkRegistry,Ve as liveDeclsToString,ya as lowerBindingStructs,Je as makeLiveDecls,Ra as makeWeslDevice,G as mapForward,Z as mapValues,Ea as markBindingStructs,wa as markEntryTypes,le as mergeScope,Ye as minimalMangle,Ke as minimallyMangledName,I as multiKeySet,me as nextIdentId,Qr as noSuffix,Kr as normalize,da as normalizeModuleName,Y as offsetToLineNumber,X as overlapTail,Rr as parseSrcModule,q as partition,zr as publicDecl,D as replaceWords,Ba as requestWeslDevice,ue as resetScopeIds,W as scan,Ge as scopeToString,ze as scopeToStringLong,Cr as syntheticWeslParseState,Ta as transformBindingReference,Na as transformBindingStruct,He as underscoreMangle};export default null;
//# sourceMappingURL=/sm/8be4f49e4b9a09fea1b96ca171a51e6a0695fdf7af8ffe4949d4289488533f30.map