shaderkit 0.1.11 → 0.1.13

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/README.md CHANGED
@@ -178,8 +178,8 @@ To shared mangled interfaces when using `mangleExternal`, declare and re-use a `
178
178
  const programOpts = { mangle: true, mangleExternals: true, mangleMap: new Map() }
179
179
 
180
180
  // #version 300 es\nin vec2 a;out vec2 b;void main(){b=a;}
181
- minify(`#version 300 es\nin vec2 uv;out vec2 c;void main(){c=uv;}`, programOpts)
181
+ minify(`#version 300 es\nin vec2 sstt;out vec2 c;void main(){c=sstt;}`, programOpts)
182
182
 
183
- // #version 300 es\nin vec2 b;out vec4 c[gl_MaxDrawBuffers];void main(){c[0]=b.sstt;}
183
+ // #version 300 es\nin vec2 b;out vec4 a[gl_MaxDrawBuffers];void main(){a[0]=b.sstt;}
184
184
  minify(`#version 300 es\nin vec2 c;out vec4 data[gl_MaxDrawBuffers];void main(){data[0]=c.sstt;}`, programOpts)
185
185
  ```
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=["vec2","vec2i","vec2u","vec2f","vec2h","vec3","vec3i","vec3u","vec3f","vec3h","vec4","vec4i","vec4u","vec4f","vec4h","mat2x2","mat2x2f","mat2x2h","mat2x3","mat2x3f","mat2x3h","mat2x4","mat2x4f","mat2x4h","mat3x2","mat3x2f","mat3x2h","mat3x3","mat3x3f","mat3x3h","mat3x4","mat3x4f","mat3x4h","mat4x2","mat4x2f","mat4x2h","mat4x3","mat4x3f","mat4x3h","mat4x4","mat4x4f","mat4x4h","array","atomic","bool","f32","f16","i32","ptr","sampler","sampler_comparison","texture_1d","texture_2d","texture_2d_array","texture_3d","texture_cube","texture_cube_array","texture_multisampled_2d","texture_storage_1d","texture_storage_2d","texture_storage_2d_array","texture_storage_3d","texture_depth_2d","texture_depth_2d_array","texture_depth_cube","texture_depth_cube_array","texture_depth_multisampled_2d","u32","alias","bitcast","break","case","const","const_assert","continue","continuing","default","discard","else","enable","false","fn","for","if","let","loop","override","return","struct","switch","true","var","while","Hullshader","NULL","Self","abstract","active","alignas","alignof","as","asm","asm_fragment","async","attribute","auto","await","become","bf16","binding_array","cast","catch","class","co_await","co_return","co_yield","coherent","column_major","common","compile","compile_fragment","concept","const_cast","consteval","constexpr","constinit","crate","debugger","decltype","delete","demote","demote_to_helper","do","dynamic_cast","enum","explicit","export","extends","extern","external","f64","fallthrough","filter","final","finally","friend","from","fxgroup","get","goto","groupshared","handle","highp","i16","i64","i8","impl","implements","import","inline","instanceof","interface","layout","lowp","macro","macro_rules","match","mediump","meta","mod","module","move","mut","mutable","namespace","new","nil","noexcept","noinline","nointerpolation","noperspective","null","nullptr","of","operator","package","packoffset","partition","pass","patch","pixelfragment","precise","precision","premerge","priv","protected","pub","public","quat","readonly","ref","regardless","register","reinterpret_cast","requires","resource","restrict","self","set","shared","sizeof","smooth","snorm","static","static_assert","static_cast","std","subroutine","super","target","template","this","thread_local","throw","trait","try","type","typedef","typeid","typename","typeof","u16","u64","u8","union","unless","unorm","unsafe","unsized","use","using","varying","virtual","volatile","wgsl","where","with","writeonly","yield","@align","@binding","@builtin","@compute","@const","@fragment","@group","@id","@interpolate","@invariant","@location","@size","@vertex","@workgroup_size","perspective","linear","flat","center","centroid","sample","vertex_index","instance_index","position","front_facing","frag_depth","local_invocation_id","local_invocation_index","global_invocation_id","workgroup_id","num_workgroups","sample_index","sample_mask","read","write","read_write","function","private","workgroup","uniform","storage","rgba8unorm","rgba8snorm","rgba8uint","rgba8sint","rgba16uint","rgba16sint","rgba16float","r32uint","r32sint","r32float","rg32uint","rg32sint","rg32float","rgba32uint","rgba32sint","rgba32float","bgra8unorm","f16","all","any","select","arrayLength","abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","clamp","cos","cosh","countLeadingZeros","countOneBits","countTrailingZeros","cross","degrees","determinant","distance","dot","exp","exp2","extractBits","faceForward","firstLeadingBit","firstTrailingBit","floor","fma","fract","frexp","insertBits","inverseSqrt","ldexp","length","log","log2","max","min","mix","modf","normalize","pow","quantizeToF16","radians","reflect","refract","reverseBits","round","saturate","sign","sin","sinh","smoothstep","sqrt","step","tan","tanh","transpose","trunc","dpdx","dpdxCoarse","dpdxFine","dpdy","dpdyCoarse","dpdyFine","fwidth","fwidthCoarse","fwidthFine","textureDimensions","textureGather","textureGatherCompare","textureLoad","textureNumLayers","textureNumLevels","textureNumSamples","textureSample","textureSampleBias","textureSampleCompare","textureSampleCompareLevel","textureSampleGrad","textureSampleLevel","textureSampleBaseClampToEdge","atomicLoad","atomicStore","atomicAdd","atomicSub","atomicMax","atomicMin","atomicAnd","atomicOr","atomicXor","atomicExchange","atomicCompareExchangeWeak","pack4x8snorm","pack4x8unorm","pack2x16snorm","pack2x16unorm","pack2x16float","unpack4x8snorm","unpack4x8unorm","unpack2x16snorm","unpack2x16unorm","unpack2x16float","storageBarrier","workgroupBarrier","workgroupUniformLoad"],I=["const","uniform","layout","centroid","flat","smooth","break","continue","do","for","while","switch","case","default","if","else","in","out","inout","float","int","void","bool","true","false","invariant","discard","return","mat2","mat3","mat4","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","uint","uvec2","uvec3","uvec4","lowp","mediump","highp","precision","sampler2D","sampler3D","samplerCube","sampler2DShadow","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","struct","attribute","varying","coherent","volatile","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","asm","class","union","enum","typedef","template","this","goto","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","superp","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler3DRect","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","imageBuffer","iimageBuffer","uimageBuffer","sampler1D","sampler1DShadow","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","sampler2DRect","sampler2DRectShadow","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray","sizeof","cast","namespace","using","#define","#undef","#if","#ifdef","#ifndef","#else","#elif","#endif","#error","#pragma","#extension","#version","#line","defined","__LINE__","__FILE__","__VERSION__","GL_ES","gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","radians","degrees","sin","cos","tan","asin","acos","atan","sinh","cosh","tanh","asinh","acosh","atanh","pow","exp","log","exp2","log2","sqrt","inversesqrt","abs","sign","floor","trunc","round","roundEven","ceil","fract","mod","modf","min","max","clamp","mix","step","smoothstep","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","length","distance","dot","cross","normalize","faceforward","reflect","refract","matrixCompMult","outerProduct","transpose","determinant","inverse","lessThan","lessThanEqual","greaterThan","greaterThanEqual","equal","notEqual","any","all","not","textureSize","texture","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset","dFdx","dFdy","fwidth","#include","gl_DrawID","gl_ViewID_OVR","GL_OVR_multiview2"],G=["//","/*","*/",":",",",".","{","[","(","?","}","]",")",";","~","--","++","!","&","|","^","/","==",">",">=","<","<=","&&","||","^^","-","*","!=","+","%","<<",">>","=","+=","&=","|=","^=","/=","*=","%=","<<=",">>=","-="],P=[...G,"#","\\"],W=[...G,"->","@"],U=RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let)\s+\w+\s*[:=]/),k=RegExp.prototype.test.bind(/^(\d+\.\d*|\d*\.\d+)([eEpP][-+]?\d+)?[fFhH]?$/),q=RegExp.prototype.test.bind(/^(0[xX][\w\d]+|\d+)[iIuU]?$/),Y=RegExp.prototype.test.bind(/^(true|false)$/),N=48,j=57,H=65,$=90,K=10,Z=13,X=9,J=32,Q=95,C=47,E=42,ee=35,te=64,z=e=>N<=e&&e<=j,ae=e=>(e&=-33,H<=e&&e<=$),re=e=>e===K||e===Z,B=e=>re(e)||e===X||e===J,O=e=>ae(e)||z(e)||e===Q,ie=e=>e===ee||e===te;function V(e,r=0){const o=[];let p=-1;const[c,d]=U(e)?[T,W]:[I,P];for(;r<e.length;){let t=e[r];const s=e.charCodeAt(r++);if(B(s)){for(;B(e.charCodeAt(r));)t+=e[r++];o.push({type:"whitespace",value:t})}else if(z(s)){for(;k(t+e[r])||q(t+e[r]);)t+=e[r++];k(t)?o.push({type:"float",value:t}):o.push({type:"int",value:t})}else if(O(s)){for(;O(e.charCodeAt(r));)t+=e[r++];Y(t)?o.push({type:"bool",value:t}):c.includes(ie(p)?String.fromCharCode(p)+t:t)?o.push({type:"keyword",value:t}):o.push({type:"identifier",value:t})}else if(s===C&&(e.charCodeAt(r)===C||e.charCodeAt(r)===E)){const u=e.charCodeAt(r)===E?"*/":`
2
- `;for(;!t.endsWith(u);)t+=e[r++];o.push({type:"comment",value:t})}else{for(const u of d)u.length>t.length&&e.startsWith(u,r-1)&&(t=u);r+=t.length-1,o.push({type:"symbol",value:t})}p=s}return o}const M=RegExp.prototype.test.bind(/^\w/),oe=RegExp.prototype.test.bind(/[^\w\\]/),R=RegExp.prototype.test.bind(/^[_A-Za-z]/),F=RegExp.prototype.test.bind(/^(uniform|in|out|attribute|varying|,)$/);function se(e,{mangle:r=!1,mangleMap:o=new Map,mangleExternals:p=!1}={}){var c,d,t,s,u,g,v,h,_,y,b,D,w,S;e=e.replace(/(^\s*#[^\\]*?)(\n|\/[\/\*])/gm,"$1\\$2");const A=new Set(o.values()),i=V(e).filter(a=>a.type!=="whitespace"&&a.type!=="comment");let L=0,x=null,m="";for(let a=0;a<i.length;a++){const n=i[a];if(M(n.value)&&M((c=i[a-1])==null?void 0:c.value)&&(m+=" "),n.value==="{"&&R((d=i[a-1])==null?void 0:d.value)?x=a-1:n.value==="}"&&(x=null),oe(n.value)&&(((t=i[a-2])==null?void 0:t.value)==="#"&&((s=i[a-1])==null?void 0:s.value)==="include"||((u=i[a-3])==null?void 0:u.value)==="#"&&((g=i[a-2])==null?void 0:g.value)==="define")&&(m+=" "),n.type==="identifier"&&n.value!=="main"&&(typeof r=="boolean"?r:r(n,a,i))){let l=o.get(n.value);if(!l&&x==null&&(R((v=i[a-1])==null?void 0:v.value)||((h=i[a-1])==null?void 0:h.value)==="}"&&((_=i[a+1])==null?void 0:_.value)===";"||((y=i[a-1])==null?void 0:y.value)===","||((b=i[a+1])==null?void 0:b.value)===":")&&(p||!F((D=i[a-1])==null?void 0:D.value)&&!F((w=i[a-2])==null?void 0:w.value))){for(;!l||A.has(l);){l="",L++;let f=L;for(;f>0;)l=String.fromCharCode(97+(f-1)%26)+l,f=Math.floor(f/26)}o.set(n.value,l)}m+=l!=null?l:n.value}else n.value==="#"&&((S=i[a-1])==null?void 0:S.value)!=="\\"?m+=`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const K=["vec2","vec2i","vec2u","vec2f","vec2h","vec3","vec3i","vec3u","vec3f","vec3h","vec4","vec4i","vec4u","vec4f","vec4h","mat2x2","mat2x2f","mat2x2h","mat2x3","mat2x3f","mat2x3h","mat2x4","mat2x4f","mat2x4h","mat3x2","mat3x2f","mat3x2h","mat3x3","mat3x3f","mat3x3h","mat3x4","mat3x4f","mat3x4h","mat4x2","mat4x2f","mat4x2h","mat4x3","mat4x3f","mat4x3h","mat4x4","mat4x4f","mat4x4h","array","atomic","bool","f32","f16","i32","ptr","sampler","sampler_comparison","texture_1d","texture_2d","texture_2d_array","texture_3d","texture_cube","texture_cube_array","texture_multisampled_2d","texture_storage_1d","texture_storage_2d","texture_storage_2d_array","texture_storage_3d","texture_depth_2d","texture_depth_2d_array","texture_depth_cube","texture_depth_cube_array","texture_depth_multisampled_2d","u32","alias","bitcast","break","case","const","const_assert","continue","continuing","default","discard","else","enable","false","fn","for","if","let","loop","override","return","struct","switch","true","var","while","Hullshader","NULL","Self","abstract","active","alignas","alignof","as","asm","asm_fragment","async","attribute","auto","await","become","bf16","binding_array","cast","catch","class","co_await","co_return","co_yield","coherent","column_major","common","compile","compile_fragment","concept","const_cast","consteval","constexpr","constinit","crate","debugger","decltype","delete","demote","demote_to_helper","do","dynamic_cast","enum","explicit","export","extends","extern","external","f64","fallthrough","filter","final","finally","friend","from","fxgroup","get","goto","groupshared","handle","highp","i16","i64","i8","impl","implements","import","inline","instanceof","interface","layout","lowp","macro","macro_rules","match","mediump","meta","mod","module","move","mut","mutable","namespace","new","nil","noexcept","noinline","nointerpolation","noperspective","null","nullptr","of","operator","package","packoffset","partition","pass","patch","pixelfragment","precise","precision","premerge","priv","protected","pub","public","quat","readonly","ref","regardless","register","reinterpret_cast","requires","resource","restrict","self","set","shared","sizeof","smooth","snorm","static","static_assert","static_cast","std","subroutine","super","target","template","this","thread_local","throw","trait","try","type","typedef","typeid","typename","typeof","u16","u64","u8","union","unless","unorm","unsafe","unsized","use","using","varying","virtual","volatile","wgsl","where","with","writeonly","yield","@align","@binding","@builtin","@compute","@const","@fragment","@group","@id","@interpolate","@invariant","@location","@size","@vertex","@workgroup_size","perspective","linear","flat","center","centroid","sample","vertex_index","instance_index","position","front_facing","frag_depth","local_invocation_id","local_invocation_index","global_invocation_id","workgroup_id","num_workgroups","sample_index","sample_mask","read","write","read_write","function","private","workgroup","uniform","storage","rgba8unorm","rgba8snorm","rgba8uint","rgba8sint","rgba16uint","rgba16sint","rgba16float","r32uint","r32sint","r32float","rg32uint","rg32sint","rg32float","rgba32uint","rgba32sint","rgba32float","bgra8unorm","f16","all","any","select","arrayLength","abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","clamp","cos","cosh","countLeadingZeros","countOneBits","countTrailingZeros","cross","degrees","determinant","distance","dot","exp","exp2","extractBits","faceForward","firstLeadingBit","firstTrailingBit","floor","fma","fract","frexp","insertBits","inverseSqrt","ldexp","length","log","log2","max","min","mix","modf","normalize","pow","quantizeToF16","radians","reflect","refract","reverseBits","round","saturate","sign","sin","sinh","smoothstep","sqrt","step","tan","tanh","transpose","trunc","dpdx","dpdxCoarse","dpdxFine","dpdy","dpdyCoarse","dpdyFine","fwidth","fwidthCoarse","fwidthFine","textureDimensions","textureGather","textureGatherCompare","textureLoad","textureNumLayers","textureNumLevels","textureNumSamples","textureSample","textureSampleBias","textureSampleCompare","textureSampleCompareLevel","textureSampleGrad","textureSampleLevel","textureSampleBaseClampToEdge","atomicLoad","atomicStore","atomicAdd","atomicSub","atomicMax","atomicMin","atomicAnd","atomicOr","atomicXor","atomicExchange","atomicCompareExchangeWeak","pack4x8snorm","pack4x8unorm","pack2x16snorm","pack2x16unorm","pack2x16float","unpack4x8snorm","unpack4x8unorm","unpack2x16snorm","unpack2x16unorm","unpack2x16float","storageBarrier","workgroupBarrier","workgroupUniformLoad"],Z=["const","uniform","layout","centroid","flat","smooth","break","continue","do","for","while","switch","case","default","if","else","in","out","inout","float","int","void","bool","true","false","invariant","discard","return","mat2","mat3","mat4","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","uint","uvec2","uvec3","uvec4","lowp","mediump","highp","precision","sampler2D","sampler3D","samplerCube","sampler2DShadow","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","struct","attribute","varying","coherent","volatile","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","asm","class","union","enum","typedef","template","this","goto","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","superp","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler3DRect","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","imageBuffer","iimageBuffer","uimageBuffer","sampler1D","sampler1DShadow","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","sampler2DRect","sampler2DRectShadow","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray","sizeof","cast","namespace","using","#define","#undef","#if","#ifdef","#ifndef","#else","#elif","#endif","#error","#pragma","#extension","#version","#line","defined","__LINE__","__FILE__","__VERSION__","GL_ES","gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","radians","degrees","sin","cos","tan","asin","acos","atan","sinh","cosh","tanh","asinh","acosh","atanh","pow","exp","log","exp2","log2","sqrt","inversesqrt","abs","sign","floor","trunc","round","roundEven","ceil","fract","mod","modf","min","max","clamp","mix","step","smoothstep","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","length","distance","dot","cross","normalize","faceforward","reflect","refract","matrixCompMult","outerProduct","transpose","determinant","inverse","lessThan","lessThanEqual","greaterThan","greaterThanEqual","equal","notEqual","any","all","not","textureSize","texture","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset","dFdx","dFdy","fwidth","#include","gl_DrawID","gl_ViewID_OVR","GL_OVR_multiview2"],X=["//","/*","*/",":",",",".","{","[","(","?","}","]",")",";","~","--","++","!","&","|","^","/","==",">",">=","<","<=","&&","||","^^","-","*","!=","+","%","<<",">>","=","+=","&=","|=","^=","/=","*=","%=","<<=",">>=","-="],J=[...X,"#","\\"],Q=[...X,"->","@"],ae=RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let)\s+\w+\s*[:=]/),V=RegExp.prototype.test.bind(/^(\d+\.\d*|\d*\.\d+)([eEpP][-+]?\d+)?[fFhH]?$/),re=RegExp.prototype.test.bind(/^(0[xX][\w\d]+|\d+)[iIuU]?$/),ie=RegExp.prototype.test.bind(/^(true|false)$/),oe=48,se=57,ne=65,le=90,ue=10,ce=13,me=9,pe=32,fe=95,U=47,q=42,ge=35,de=64,ee=e=>oe<=e&&e<=se,xe=e=>(e&=-33,ne<=e&&e<=le),he=e=>e===ue||e===ce,Y=e=>he(e)||e===me||e===pe,N=e=>xe(e)||ee(e)||e===fe,_e=e=>e===ge||e===de;function te(e,o=0){const i=[];let p=-1;const[d,f]=ae(e)?[K,Q]:[Z,J];for(;o<e.length;){let a=e[o];const s=e.charCodeAt(o++);if(Y(s)){for(;Y(e.charCodeAt(o));)a+=e[o++];i.push({type:"whitespace",value:a})}else if(ee(s)){for(;V(a+e[o])||re(a+e[o]);)a+=e[o++];V(a)?i.push({type:"float",value:a}):i.push({type:"int",value:a})}else if(N(s)){for(;N(e.charCodeAt(o));)a+=e[o++];ie(a)?i.push({type:"bool",value:a}):d.includes(_e(p)?String.fromCharCode(p)+a:a)?i.push({type:"keyword",value:a}):i.push({type:"identifier",value:a})}else if(s===U&&(e.charCodeAt(o)===U||e.charCodeAt(o)===q)){const u=e.charCodeAt(o)===q?"*/":`
2
+ `;for(;!a.endsWith(u);)a+=e[o++];i.push({type:"comment",value:a})}else{for(const u of f)u.length>a.length&&e.startsWith(u,o-1)&&(a=u);o+=a.length-1,i.push({type:"symbol",value:a})}p=s}return i}const j=RegExp.prototype.test.bind(/^\w/),ve=RegExp.prototype.test.bind(/[^\w\\]/),H=RegExp.prototype.test.bind(/^[_A-Za-z]/),ye=RegExp.prototype.test.bind(/[;{}\\@]/),$=RegExp.prototype.test.bind(/^(binding|group|layout|uniform|in|out|attribute|varying)$/);function be(e,{mangle:o=!1,mangleMap:i=new Map,mangleExternals:p=!1}={}){var d,f,a,s,u,h,_,y,b,D,w,S,k,C,L,A,M,E,B,R,O,F;e=e.replace(/(^\s*#[^\\]*?)(\n|\/[\/\*])/gm,"$1\\$2");const T=new Map,r=te(e).filter(t=>t.type!=="whitespace"&&t.type!=="comment");let P=-1,I=-1,g=-1,m="";for(let t=0;t<r.length;t++){const n=r[t];($(n.value)||ye((d=r[t-1])==null?void 0:d.value))&&(I=t),n.value==="{"&&H((f=r[t-1])==null?void 0:f.value)?g=t-1:n.value==="}"&&(g=-1),j(n.value)&&j((a=r[t-1])==null?void 0:a.value)&&(m+=" "),ve(n.value)&&(((s=r[t-2])==null?void 0:s.value)==="#"&&((u=r[t-1])==null?void 0:u.value)==="include"||((h=r[t-3])==null?void 0:h.value)==="#"&&((_=r[t-2])==null?void 0:_.value)==="define")&&(m+=" ");let c=n.value;if(((y=r[t-1])==null?void 0:y.value)==="."&&(c=`${(b=r[t-2])==null?void 0:b.value}.`+c),n.type==="identifier"&&c!=="main"&&(typeof o=="boolean"?o:o(n,t,r))){const G=((D=r[t-1])==null?void 0:D.value)==="}"&&((w=r[t+1])==null?void 0:w.value)===";",v=$((S=r[I])==null?void 0:S.value),z=v&&((k=r[t-1])==null?void 0:k.value)===",";let l=(C=i.get(c))!=null?C:T.get(c);if(!l&&g===-1&&(H((L=r[t-1])==null?void 0:L.value)||G||z||((A=r[t-1])==null?void 0:A.type)==="symbol"&&((M=r[t+1])==null?void 0:M.value)===":")&&(p||!v)){const W=p&&v||((E=r[t-2])==null?void 0:E.value)==="#"||G||z||((B=r[t-1])==null?void 0:B.value)==="fn"&&(((R=r[t-2])==null?void 0:R.value)===")"||((O=r[t-3])==null?void 0:O.value)==="@")?i:T;for(;!l||W.has(l);){l="",P++;let x=P;for(;x>0;)l=String.fromCharCode(97+(x-1)%26)+l,x=Math.floor(x/26)}W.set(c,l)}m+=l!=null?l:n.value}else n.value==="#"&&((F=r[t-1])==null?void 0:F.value)!=="\\"?m+=`
3
3
  #`:n.value==="\\"?m+=`
4
- `:m+=n.value}return m.trim()}exports.GLSL_KEYWORDS=I,exports.GLSL_SYMBOLS=P,exports.WGSL_KEYWORDS=T,exports.WGSL_SYMBOLS=W,exports.minify=se,exports.tokenize=V;
4
+ `:m+=n.value}return m.trim()}exports.GLSL_KEYWORDS=Z,exports.GLSL_SYMBOLS=J,exports.WGSL_KEYWORDS=K,exports.WGSL_SYMBOLS=Q,exports.minify=be,exports.tokenize=te;
5
5
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/constants.ts","../src/tokenizer.ts","../src/minifier.ts"],"sourcesContent":null,"names":["WGSL_KEYWORDS","GLSL_KEYWORDS","SYMBOLS","GLSL_SYMBOLS","WGSL_SYMBOLS","isWGSL","isFloat","isInt","isBool","ZERO","NINE","A","Z","LF","CR","TAB","SPACE","UNDERSCORE","SLASH","STAR","HASH","AT","isDigit","c","isAlpha","isLine","isSpace","isIdent","isMacro","tokenize","code","index","tokens","prev","KEYWORDS","value","char","terminator","symbol","isWord","isSymbol","isName","isStorage","minify","mangle","mangleMap","mangleExternals","exclude","token","mangleIndex","blockIndex","minified","i","_a","_b","_c","_d","_e","_f","renamed","_g","_h","_i","_j","_k","_l","_m","j","_n"],"mappings":"gFACO,MAAMA,EAAgB,CAE3B,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QAGA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UAGA,QACA,SACA,OACA,MACA,MACA,MAUA,MACA,UACA,qBACA,aACA,aACA,mBACA,aACA,eACA,qBACA,0BACA,qBACA,qBACA,2BACA,qBACA,mBACA,yBACA,qBACA,2BACA,gCACA,MAMA,QACA,UACA,QACA,OACA,QACA,eACA,WACA,aACA,UACA,UACA,OACA,SACA,QACA,KACA,MACA,KACA,MACA,OACA,WACA,SACA,SACA,SACA,OACA,MACA,QAGA,aACA,OACA,OACA,WACA,SACA,UACA,UACA,KACA,MACA,eACA,QACA,YACA,OACA,QACA,SACA,OACA,gBACA,OACA,QACA,QACA,WACA,YACA,WACA,WACA,eACA,SACA,UACA,mBACA,UACA,aACA,YACA,YACA,YACA,QACA,WACA,WACA,SACA,SACA,mBACA,KACA,eACA,OACA,WACA,SACA,UACA,SACA,WACA,MACA,cACA,SACA,QACA,UACA,SACA,OACA,UACA,MACA,OACA,cACA,SACA,QACA,MACA,MACA,KACA,OACA,aACA,SACA,SACA,aACA,YACA,SACA,OACA,QACA,cACA,QACA,UACA,OACA,MACA,SACA,OACA,MACA,UACA,YACA,MACA,MACA,WACA,WACA,kBACA,gBACA,OACA,UACA,KACA,WACA,UACA,aACA,YACA,OACA,QACA,gBACA,UACA,YACA,WACA,OACA,YACA,MACA,SACA,OACA,WACA,MACA,aACA,WACA,mBACA,WACA,WACA,WACA,OACA,MACA,SACA,SACA,SACA,QACA,SACA,gBACA,cACA,MACA,aACA,QACA,SACA,WACA,OACA,eACA,QACA,QACA,MACA,OACA,UACA,SACA,WACA,SACA,MACA,MACA,KACA,QACA,SACA,QACA,SACA,UACA,MACA,QACA,UACA,UACA,WACA,OACA,QACA,OACA,YACA,QAGA,SACA,WACA,WACA,WACA,SACA,YACA,SACA,MACA,eACA,aACA,YACA,QACA,UACA,kBAGA,cACA,SACA,OAGA,SACA,WACA,SAGA,eACA,iBACA,WACA,eACA,aACA,sBACA,yBACA,uBACA,eACA,iBACA,eACA,cAGA,OACA,QACA,aAGA,WACA,UACA,YACA,UACA,UAGA,aACA,aACA,YACA,YACA,aACA,aACA,cACA,UACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,cACA,aAGA,MAGA,MACA,MACA,SAGA,cAGA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,oBACA,eACA,qBACA,QACA,UACA,cACA,WACA,MACA,MACA,OACA,cACA,cACA,kBACA,mBACA,QACA,MACA,QACA,QACA,aACA,cACA,QACA,SACA,MACA,OACA,MACA,MACA,MACA,OACA,YACA,MACA,gBACA,UACA,UACA,UACA,cACA,QACA,WACA,OACA,MACA,OACA,aACA,OACA,OACA,MACA,OACA,YACA,QAGA,OACA,aACA,WACA,OACA,aACA,WACA,SACA,eACA,aAGA,oBACA,gBACA,uBACA,cACA,mBACA,mBACA,oBACA,gBACA,oBACA,uBACA,4BACA,oBACA,qBACA,+BAGA,aACA,cACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,iBACA,4BAGA,eACA,eACA,gBACA,gBACA,gBAGA,iBACA,iBACA,kBACA,kBACA,kBAGA,iBACA,mBACA,sBACF,EAIaC,EAAgB,CAE3B,QACA,UACA,SACA,WACA,OACA,SACA,QACA,WACA,KACA,MACA,QACA,SACA,OACA,UACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OACA,OACA,QACA,YACA,UACA,SACA,OACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,UACA,QACA,YACA,YACA,YACA,cACA,kBACA,oBACA,iBACA,uBACA,aACA,aACA,eACA,kBACA,aACA,aACA,eACA,kBACA,SAGA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,cACA,gBACA,QACA,SACA,aACA,SACA,YACA,SACA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,OACA,SACA,WACA,WACA,SACA,SACA,SACA,WACA,YACA,OACA,QACA,SACA,OACA,QACA,WACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,gBACA,SACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,aACA,WACA,WACA,WACA,aACA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,cACA,eACA,eACA,YACA,kBACA,iBACA,uBACA,aACA,kBACA,aACA,kBACA,gBACA,sBACA,iBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,eACA,mBACA,oBACA,oBACA,SACA,OACA,YACA,QAGA,UACA,SACA,MACA,SACA,UACA,QACA,QACA,SACA,SACA,UACA,aACA,WACA,QAGA,UAGA,WACA,WACA,cACA,QAGA,cACA,gBACA,cACA,eAGA,eACA,iBACA,eACA,gBAGA,sBACA,6BACA,4BACA,6BACA,gCACA,kCACA,0BACA,+BACA,oBACA,2BACA,2BAGA,0BACA,gBAGA,UACA,UACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QAGA,MACA,MACA,MACA,OACA,OACA,OACA,cAGA,MACA,OACA,QACA,QACA,QACA,YACA,OACA,QACA,MACA,OACA,MACA,MACA,QACA,MACA,OACA,aACA,QACA,QACA,iBACA,kBACA,iBACA,kBAGA,gBACA,kBACA,gBACA,kBACA,eACA,iBAGA,SACA,WACA,MACA,QACA,YACA,cACA,UACA,UACA,iBACA,eACA,YACA,cACA,UAGA,WA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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/constants.ts","../src/tokenizer.ts","../src/minifier.ts"],"sourcesContent":null,"names":["WGSL_KEYWORDS","GLSL_KEYWORDS","SYMBOLS","GLSL_SYMBOLS","WGSL_SYMBOLS","isWGSL","isFloat","isInt","isBool","ZERO","NINE","A","Z","LF","CR","TAB","SPACE","UNDERSCORE","SLASH","STAR","HASH","AT","isDigit","c","isAlpha","isLine","isSpace","isIdent","isMacro","tokenize","code","index","tokens","prev","KEYWORDS","value","char","terminator","symbol","isWord","isSymbol","isName","isScoped","isStorage","minify","mangle","mangleMap","mangleExternals","mangleCache","token","mangleIndex","lineIndex","blockIndex","minified","i","_a","_b","_c","_d","_e","_f","_g","prefix","_h","_i","namespace","_j","_k","storage","_l","list","_m","renamed","_n","_o","_p","_q","cache","_r","_s","_t","_u","j","_v"],"mappings":"gFACO,MAAMA,EAAgB,CAE3B,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QAGA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UAGA,QACA,SACA,OACA,MACA,MACA,MAUA,MACA,UACA,qBACA,aACA,aACA,mBACA,aACA,eACA,qBACA,0BACA,qBACA,qBACA,2BACA,qBACA,mBACA,yBACA,qBACA,2BACA,gCACA,MAMA,QACA,UACA,QACA,OACA,QACA,eACA,WACA,aACA,UACA,UACA,OACA,SACA,QACA,KACA,MACA,KACA,MACA,OACA,WACA,SACA,SACA,SACA,OACA,MACA,QAGA,aACA,OACA,OACA,WACA,SACA,UACA,UACA,KACA,MACA,eACA,QACA,YACA,OACA,QACA,SACA,OACA,gBACA,OACA,QACA,QACA,WACA,YACA,WACA,WACA,eACA,SACA,UACA,mBACA,UACA,aACA,YACA,YACA,YACA,QACA,WACA,WACA,SACA,SACA,mBACA,KACA,eACA,OACA,WACA,SACA,UACA,SACA,WACA,MACA,cACA,SACA,QACA,UACA,SACA,OACA,UACA,MACA,OACA,cACA,SACA,QACA,MACA,MACA,KACA,OACA,aACA,SACA,SACA,aACA,YACA,SACA,OACA,QACA,cACA,QACA,UACA,OACA,MACA,SACA,OACA,MACA,UACA,YACA,MACA,MACA,WACA,WACA,kBACA,gBACA,OACA,UACA,KACA,WACA,UACA,aACA,YACA,OACA,QACA,gBACA,UACA,YACA,WACA,OACA,YACA,MACA,SACA,OACA,WACA,MACA,aACA,WACA,mBACA,WACA,WACA,WACA,OACA,MACA,SACA,SACA,SACA,QACA,SACA,gBACA,cACA,MACA,aACA,QACA,SACA,WACA,OACA,eACA,QACA,QACA,MACA,OACA,UACA,SACA,WACA,SACA,MACA,MACA,KACA,QACA,SACA,QACA,SACA,UACA,MACA,QACA,UACA,UACA,WACA,OACA,QACA,OACA,YACA,QAGA,SACA,WACA,WACA,WACA,SACA,YACA,SACA,MACA,eACA,aACA,YACA,QACA,UACA,kBAGA,cACA,SACA,OAGA,SACA,WACA,SAGA,eACA,iBACA,WACA,eACA,aACA,sBACA,yBACA,uBACA,eACA,iBACA,eACA,cAGA,OACA,QACA,aAGA,WACA,UACA,YACA,UACA,UAGA,aACA,aACA,YACA,YACA,aACA,aACA,cACA,UACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,cACA,aAGA,MAGA,MACA,MACA,SAGA,cAGA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,oBACA,eACA,qBACA,QACA,UACA,cACA,WACA,MACA,MACA,OACA,cACA,cACA,kBACA,mBACA,QACA,MACA,QACA,QACA,aACA,cACA,QACA,SACA,MACA,OACA,MACA,MACA,MACA,OACA,YACA,MACA,gBACA,UACA,UACA,UACA,cACA,QACA,WACA,OACA,MACA,OACA,aACA,OACA,OACA,MACA,OACA,YACA,QAGA,OACA,aACA,WACA,OACA,aACA,WACA,SACA,eACA,aAGA,oBACA,gBACA,uBACA,cACA,mBACA,mBACA,oBACA,gBACA,oBACA,uBACA,4BACA,oBACA,qBACA,+BAGA,aACA,cACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,iBACA,4BAGA,eACA,eACA,gBACA,gBACA,gBAGA,iBACA,iBACA,kBACA,kBACA,kBAGA,iBACA,mBACA,sBACF,EAIaC,EAAgB,CAE3B,QACA,UACA,SACA,WACA,OACA,SACA,QACA,WACA,KACA,MACA,QACA,SACA,OACA,UACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OACA,OACA,QACA,YACA,UACA,SACA,OACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,UACA,QACA,YACA,YACA,YACA,cACA,kBACA,oBACA,iBACA,uBACA,aACA,aACA,eACA,kBACA,aACA,aACA,eACA,kBACA,SAGA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,cACA,gBACA,QACA,SACA,aACA,SACA,YACA,SACA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,OACA,SACA,WACA,WACA,SACA,SACA,SACA,WACA,YACA,OACA,QACA,SACA,OACA,QACA,WACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,gBACA,SACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,aACA,WACA,WACA,WACA,aACA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,cACA,eACA,eACA,YACA,kBACA,iBACA,uBACA,aACA,kBACA,aACA,kBACA,gBACA,sBACA,iBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,eACA,mBACA,oBACA,oBACA,SACA,OACA,YACA,QAGA,UACA,SACA,MACA,SACA,UACA,QACA,QACA,SACA,SACA,UACA,aACA,WACA,QAGA,UAGA,WACA,WACA,cACA,QAGA,cACA,gBACA,cACA,eAGA,eACA,iBACA,eACA,gBAGA,sBACA,6BACA,4BACA,6BACA,gCACA,kCACA,0BACA,+BACA,oBACA,2BACA,2BAGA,0BACA,gBAGA,UACA,UACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QAGA,MACA,MACA,MACA,OACA,OACA,OACA,cAGA,MACA,OACA,QACA,QACA,QACA,YACA,OACA,QACA,MACA,OACA,MACA,MACA,QACA,MACA,OACA,aACA,QACA,QACA,iBACA,kBACA,iBACA,kBAGA,gBACA,kBACA,gBACA,kBACA,eACA,iBAGA,SACA,WACA,MACA,QACA,YACA,cACA,UACA,UACA,iBACA,eACA,YACA,cACA,UAGA,WA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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- const C=["vec2","vec2i","vec2u","vec2f","vec2h","vec3","vec3i","vec3u","vec3f","vec3h","vec4","vec4i","vec4u","vec4f","vec4h","mat2x2","mat2x2f","mat2x2h","mat2x3","mat2x3f","mat2x3h","mat2x4","mat2x4f","mat2x4h","mat3x2","mat3x2f","mat3x2h","mat3x3","mat3x3f","mat3x3h","mat3x4","mat3x4f","mat3x4h","mat4x2","mat4x2f","mat4x2h","mat4x3","mat4x3f","mat4x3h","mat4x4","mat4x4f","mat4x4h","array","atomic","bool","f32","f16","i32","ptr","sampler","sampler_comparison","texture_1d","texture_2d","texture_2d_array","texture_3d","texture_cube","texture_cube_array","texture_multisampled_2d","texture_storage_1d","texture_storage_2d","texture_storage_2d_array","texture_storage_3d","texture_depth_2d","texture_depth_2d_array","texture_depth_cube","texture_depth_cube_array","texture_depth_multisampled_2d","u32","alias","bitcast","break","case","const","const_assert","continue","continuing","default","discard","else","enable","false","fn","for","if","let","loop","override","return","struct","switch","true","var","while","Hullshader","NULL","Self","abstract","active","alignas","alignof","as","asm","asm_fragment","async","attribute","auto","await","become","bf16","binding_array","cast","catch","class","co_await","co_return","co_yield","coherent","column_major","common","compile","compile_fragment","concept","const_cast","consteval","constexpr","constinit","crate","debugger","decltype","delete","demote","demote_to_helper","do","dynamic_cast","enum","explicit","export","extends","extern","external","f64","fallthrough","filter","final","finally","friend","from","fxgroup","get","goto","groupshared","handle","highp","i16","i64","i8","impl","implements","import","inline","instanceof","interface","layout","lowp","macro","macro_rules","match","mediump","meta","mod","module","move","mut","mutable","namespace","new","nil","noexcept","noinline","nointerpolation","noperspective","null","nullptr","of","operator","package","packoffset","partition","pass","patch","pixelfragment","precise","precision","premerge","priv","protected","pub","public","quat","readonly","ref","regardless","register","reinterpret_cast","requires","resource","restrict","self","set","shared","sizeof","smooth","snorm","static","static_assert","static_cast","std","subroutine","super","target","template","this","thread_local","throw","trait","try","type","typedef","typeid","typename","typeof","u16","u64","u8","union","unless","unorm","unsafe","unsized","use","using","varying","virtual","volatile","wgsl","where","with","writeonly","yield","@align","@binding","@builtin","@compute","@const","@fragment","@group","@id","@interpolate","@invariant","@location","@size","@vertex","@workgroup_size","perspective","linear","flat","center","centroid","sample","vertex_index","instance_index","position","front_facing","frag_depth","local_invocation_id","local_invocation_index","global_invocation_id","workgroup_id","num_workgroups","sample_index","sample_mask","read","write","read_write","function","private","workgroup","uniform","storage","rgba8unorm","rgba8snorm","rgba8uint","rgba8sint","rgba16uint","rgba16sint","rgba16float","r32uint","r32sint","r32float","rg32uint","rg32sint","rg32float","rgba32uint","rgba32sint","rgba32float","bgra8unorm","f16","all","any","select","arrayLength","abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","clamp","cos","cosh","countLeadingZeros","countOneBits","countTrailingZeros","cross","degrees","determinant","distance","dot","exp","exp2","extractBits","faceForward","firstLeadingBit","firstTrailingBit","floor","fma","fract","frexp","insertBits","inverseSqrt","ldexp","length","log","log2","max","min","mix","modf","normalize","pow","quantizeToF16","radians","reflect","refract","reverseBits","round","saturate","sign","sin","sinh","smoothstep","sqrt","step","tan","tanh","transpose","trunc","dpdx","dpdxCoarse","dpdxFine","dpdy","dpdyCoarse","dpdyFine","fwidth","fwidthCoarse","fwidthFine","textureDimensions","textureGather","textureGatherCompare","textureLoad","textureNumLayers","textureNumLevels","textureNumSamples","textureSample","textureSampleBias","textureSampleCompare","textureSampleCompareLevel","textureSampleGrad","textureSampleLevel","textureSampleBaseClampToEdge","atomicLoad","atomicStore","atomicAdd","atomicSub","atomicMax","atomicMin","atomicAnd","atomicOr","atomicXor","atomicExchange","atomicCompareExchangeWeak","pack4x8snorm","pack4x8unorm","pack2x16snorm","pack2x16unorm","pack2x16float","unpack4x8snorm","unpack4x8unorm","unpack2x16snorm","unpack2x16unorm","unpack2x16float","storageBarrier","workgroupBarrier","workgroupUniformLoad"],L=["const","uniform","layout","centroid","flat","smooth","break","continue","do","for","while","switch","case","default","if","else","in","out","inout","float","int","void","bool","true","false","invariant","discard","return","mat2","mat3","mat4","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","uint","uvec2","uvec3","uvec4","lowp","mediump","highp","precision","sampler2D","sampler3D","samplerCube","sampler2DShadow","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","struct","attribute","varying","coherent","volatile","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","asm","class","union","enum","typedef","template","this","goto","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","superp","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler3DRect","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","imageBuffer","iimageBuffer","uimageBuffer","sampler1D","sampler1DShadow","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","sampler2DRect","sampler2DRectShadow","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray","sizeof","cast","namespace","using","#define","#undef","#if","#ifdef","#ifndef","#else","#elif","#endif","#error","#pragma","#extension","#version","#line","defined","__LINE__","__FILE__","__VERSION__","GL_ES","gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","radians","degrees","sin","cos","tan","asin","acos","atan","sinh","cosh","tanh","asinh","acosh","atanh","pow","exp","log","exp2","log2","sqrt","inversesqrt","abs","sign","floor","trunc","round","roundEven","ceil","fract","mod","modf","min","max","clamp","mix","step","smoothstep","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","length","distance","dot","cross","normalize","faceforward","reflect","refract","matrixCompMult","outerProduct","transpose","determinant","inverse","lessThan","lessThanEqual","greaterThan","greaterThanEqual","equal","notEqual","any","all","not","textureSize","texture","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset","dFdx","dFdy","fwidth","#include","gl_DrawID","gl_ViewID_OVR","GL_OVR_multiview2"],A=["//","/*","*/",":",",",".","{","[","(","?","}","]",")",";","~","--","++","!","&","|","^","/","==",">",">=","<","<=","&&","||","^^","-","*","!=","+","%","<<",">>","=","+=","&=","|=","^=","/=","*=","%=","<<=",">>=","-="],M=[...A,"#","\\"],B=[...A,"->","@"],U=RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let)\s+\w+\s*[:=]/),E=RegExp.prototype.test.bind(/^(\d+\.\d*|\d*\.\d+)([eEpP][-+]?\d+)?[fFhH]?$/),j=RegExp.prototype.test.bind(/^(0[xX][\w\d]+|\d+)[iIuU]?$/),W=RegExp.prototype.test.bind(/^(true|false)$/),N=48,$=57,H=65,Y=90,Z=10,K=13,X=9,J=32,Q=95,R=47,F=42,ee=35,te=64,O=e=>N<=e&&e<=$,ae=e=>(e&=-33,H<=e&&e<=Y),re=e=>e===Z||e===K,T=e=>re(e)||e===X||e===J,I=e=>ae(e)||O(e)||e===Q,ie=e=>e===ee||e===te;function P(e,r=0){const o=[];let c=-1;const[p,d]=U(e)?[C,B]:[L,M];for(;r<e.length;){let t=e[r];const s=e.charCodeAt(r++);if(T(s)){for(;T(e.charCodeAt(r));)t+=e[r++];o.push({type:"whitespace",value:t})}else if(O(s)){for(;E(t+e[r])||j(t+e[r]);)t+=e[r++];E(t)?o.push({type:"float",value:t}):o.push({type:"int",value:t})}else if(I(s)){for(;I(e.charCodeAt(r));)t+=e[r++];W(t)?o.push({type:"bool",value:t}):p.includes(ie(c)?String.fromCharCode(c)+t:t)?o.push({type:"keyword",value:t}):o.push({type:"identifier",value:t})}else if(s===R&&(e.charCodeAt(r)===R||e.charCodeAt(r)===F)){const u=e.charCodeAt(r)===F?"*/":`
2
- `;for(;!t.endsWith(u);)t+=e[r++];o.push({type:"comment",value:t})}else{for(const u of d)u.length>t.length&&e.startsWith(u,r-1)&&(t=u);r+=t.length-1,o.push({type:"symbol",value:t})}c=s}return o}const G=RegExp.prototype.test.bind(/^\w/),oe=RegExp.prototype.test.bind(/[^\w\\]/),V=RegExp.prototype.test.bind(/^[_A-Za-z]/),z=RegExp.prototype.test.bind(/^(uniform|in|out|attribute|varying|,)$/);function ne(e,{mangle:r=!1,mangleMap:o=new Map,mangleExternals:c=!1}={}){var p,d,t,s,u,g,v,h,_,y,b,D,w,S;e=e.replace(/(^\s*#[^\\]*?)(\n|\/[\/\*])/gm,"$1\\$2");const q=new Set(o.values()),i=P(e).filter(a=>a.type!=="whitespace"&&a.type!=="comment");let k=0,x=null,m="";for(let a=0;a<i.length;a++){const n=i[a];if(G(n.value)&&G((p=i[a-1])==null?void 0:p.value)&&(m+=" "),n.value==="{"&&V((d=i[a-1])==null?void 0:d.value)?x=a-1:n.value==="}"&&(x=null),oe(n.value)&&(((t=i[a-2])==null?void 0:t.value)==="#"&&((s=i[a-1])==null?void 0:s.value)==="include"||((u=i[a-3])==null?void 0:u.value)==="#"&&((g=i[a-2])==null?void 0:g.value)==="define")&&(m+=" "),n.type==="identifier"&&n.value!=="main"&&(typeof r=="boolean"?r:r(n,a,i))){let l=o.get(n.value);if(!l&&x==null&&(V((v=i[a-1])==null?void 0:v.value)||((h=i[a-1])==null?void 0:h.value)==="}"&&((_=i[a+1])==null?void 0:_.value)===";"||((y=i[a-1])==null?void 0:y.value)===","||((b=i[a+1])==null?void 0:b.value)===":")&&(c||!z((D=i[a-1])==null?void 0:D.value)&&!z((w=i[a-2])==null?void 0:w.value))){for(;!l||q.has(l);){l="",k++;let f=k;for(;f>0;)l=String.fromCharCode(97+(f-1)%26)+l,f=Math.floor(f/26)}o.set(n.value,l)}m+=l!=null?l:n.value}else n.value==="#"&&((S=i[a-1])==null?void 0:S.value)!=="\\"?m+=`
1
+ const q=["vec2","vec2i","vec2u","vec2f","vec2h","vec3","vec3i","vec3u","vec3f","vec3h","vec4","vec4i","vec4u","vec4f","vec4h","mat2x2","mat2x2f","mat2x2h","mat2x3","mat2x3f","mat2x3h","mat2x4","mat2x4f","mat2x4h","mat3x2","mat3x2f","mat3x2h","mat3x3","mat3x3f","mat3x3h","mat3x4","mat3x4f","mat3x4h","mat4x2","mat4x2f","mat4x2h","mat4x3","mat4x3f","mat4x3h","mat4x4","mat4x4f","mat4x4h","array","atomic","bool","f32","f16","i32","ptr","sampler","sampler_comparison","texture_1d","texture_2d","texture_2d_array","texture_3d","texture_cube","texture_cube_array","texture_multisampled_2d","texture_storage_1d","texture_storage_2d","texture_storage_2d_array","texture_storage_3d","texture_depth_2d","texture_depth_2d_array","texture_depth_cube","texture_depth_cube_array","texture_depth_multisampled_2d","u32","alias","bitcast","break","case","const","const_assert","continue","continuing","default","discard","else","enable","false","fn","for","if","let","loop","override","return","struct","switch","true","var","while","Hullshader","NULL","Self","abstract","active","alignas","alignof","as","asm","asm_fragment","async","attribute","auto","await","become","bf16","binding_array","cast","catch","class","co_await","co_return","co_yield","coherent","column_major","common","compile","compile_fragment","concept","const_cast","consteval","constexpr","constinit","crate","debugger","decltype","delete","demote","demote_to_helper","do","dynamic_cast","enum","explicit","export","extends","extern","external","f64","fallthrough","filter","final","finally","friend","from","fxgroup","get","goto","groupshared","handle","highp","i16","i64","i8","impl","implements","import","inline","instanceof","interface","layout","lowp","macro","macro_rules","match","mediump","meta","mod","module","move","mut","mutable","namespace","new","nil","noexcept","noinline","nointerpolation","noperspective","null","nullptr","of","operator","package","packoffset","partition","pass","patch","pixelfragment","precise","precision","premerge","priv","protected","pub","public","quat","readonly","ref","regardless","register","reinterpret_cast","requires","resource","restrict","self","set","shared","sizeof","smooth","snorm","static","static_assert","static_cast","std","subroutine","super","target","template","this","thread_local","throw","trait","try","type","typedef","typeid","typename","typeof","u16","u64","u8","union","unless","unorm","unsafe","unsized","use","using","varying","virtual","volatile","wgsl","where","with","writeonly","yield","@align","@binding","@builtin","@compute","@const","@fragment","@group","@id","@interpolate","@invariant","@location","@size","@vertex","@workgroup_size","perspective","linear","flat","center","centroid","sample","vertex_index","instance_index","position","front_facing","frag_depth","local_invocation_id","local_invocation_index","global_invocation_id","workgroup_id","num_workgroups","sample_index","sample_mask","read","write","read_write","function","private","workgroup","uniform","storage","rgba8unorm","rgba8snorm","rgba8uint","rgba8sint","rgba16uint","rgba16sint","rgba16float","r32uint","r32sint","r32float","rg32uint","rg32sint","rg32float","rgba32uint","rgba32sint","rgba32float","bgra8unorm","f16","all","any","select","arrayLength","abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","clamp","cos","cosh","countLeadingZeros","countOneBits","countTrailingZeros","cross","degrees","determinant","distance","dot","exp","exp2","extractBits","faceForward","firstLeadingBit","firstTrailingBit","floor","fma","fract","frexp","insertBits","inverseSqrt","ldexp","length","log","log2","max","min","mix","modf","normalize","pow","quantizeToF16","radians","reflect","refract","reverseBits","round","saturate","sign","sin","sinh","smoothstep","sqrt","step","tan","tanh","transpose","trunc","dpdx","dpdxCoarse","dpdxFine","dpdy","dpdyCoarse","dpdyFine","fwidth","fwidthCoarse","fwidthFine","textureDimensions","textureGather","textureGatherCompare","textureLoad","textureNumLayers","textureNumLevels","textureNumSamples","textureSample","textureSampleBias","textureSampleCompare","textureSampleCompareLevel","textureSampleGrad","textureSampleLevel","textureSampleBaseClampToEdge","atomicLoad","atomicStore","atomicAdd","atomicSub","atomicMax","atomicMin","atomicAnd","atomicOr","atomicXor","atomicExchange","atomicCompareExchangeWeak","pack4x8snorm","pack4x8unorm","pack2x16snorm","pack2x16unorm","pack2x16float","unpack4x8snorm","unpack4x8unorm","unpack2x16snorm","unpack2x16unorm","unpack2x16float","storageBarrier","workgroupBarrier","workgroupUniformLoad"],U=["const","uniform","layout","centroid","flat","smooth","break","continue","do","for","while","switch","case","default","if","else","in","out","inout","float","int","void","bool","true","false","invariant","discard","return","mat2","mat3","mat4","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","uint","uvec2","uvec3","uvec4","lowp","mediump","highp","precision","sampler2D","sampler3D","samplerCube","sampler2DShadow","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","struct","attribute","varying","coherent","volatile","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","asm","class","union","enum","typedef","template","this","goto","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","superp","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler3DRect","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","imageBuffer","iimageBuffer","uimageBuffer","sampler1D","sampler1DShadow","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","sampler2DRect","sampler2DRectShadow","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray","sizeof","cast","namespace","using","#define","#undef","#if","#ifdef","#ifndef","#else","#elif","#endif","#error","#pragma","#extension","#version","#line","defined","__LINE__","__FILE__","__VERSION__","GL_ES","gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","radians","degrees","sin","cos","tan","asin","acos","atan","sinh","cosh","tanh","asinh","acosh","atanh","pow","exp","log","exp2","log2","sqrt","inversesqrt","abs","sign","floor","trunc","round","roundEven","ceil","fract","mod","modf","min","max","clamp","mix","step","smoothstep","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","length","distance","dot","cross","normalize","faceforward","reflect","refract","matrixCompMult","outerProduct","transpose","determinant","inverse","lessThan","lessThanEqual","greaterThan","greaterThanEqual","equal","notEqual","any","all","not","textureSize","texture","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset","dFdx","dFdy","fwidth","#include","gl_DrawID","gl_ViewID_OVR","GL_OVR_multiview2"],j=["//","/*","*/",":",",",".","{","[","(","?","}","]",")",";","~","--","++","!","&","|","^","/","==",">",">=","<","<=","&&","||","^^","-","*","!=","+","%","<<",">>","=","+=","&=","|=","^=","/=","*=","%=","<<=",">>=","-="],W=[...j,"#","\\"],$=[...j,"->","@"],ae=RegExp.prototype.test.bind(/\bfn\s+\w+\s*\(|\b(var|let)\s+\w+\s*[:=]/),N=RegExp.prototype.test.bind(/^(\d+\.\d*|\d*\.\d+)([eEpP][-+]?\d+)?[fFhH]?$/),re=RegExp.prototype.test.bind(/^(0[xX][\w\d]+|\d+)[iIuU]?$/),oe=RegExp.prototype.test.bind(/^(true|false)$/),ie=48,ne=57,le=65,se=90,ue=10,me=13,pe=9,ce=32,de=95,H=47,Y=42,fe=35,xe=64,Z=e=>ie<=e&&e<=ne,ge=e=>(e&=-33,le<=e&&e<=se),ve=e=>e===ue||e===me,K=e=>ve(e)||e===pe||e===ce,X=e=>ge(e)||Z(e)||e===de,he=e=>e===fe||e===xe;function J(e,o=0){const i=[];let p=-1;const[d,f]=ae(e)?[q,$]:[U,W];for(;o<e.length;){let a=e[o];const s=e.charCodeAt(o++);if(K(s)){for(;K(e.charCodeAt(o));)a+=e[o++];i.push({type:"whitespace",value:a})}else if(Z(s)){for(;N(a+e[o])||re(a+e[o]);)a+=e[o++];N(a)?i.push({type:"float",value:a}):i.push({type:"int",value:a})}else if(X(s)){for(;X(e.charCodeAt(o));)a+=e[o++];oe(a)?i.push({type:"bool",value:a}):d.includes(he(p)?String.fromCharCode(p)+a:a)?i.push({type:"keyword",value:a}):i.push({type:"identifier",value:a})}else if(s===H&&(e.charCodeAt(o)===H||e.charCodeAt(o)===Y)){const u=e.charCodeAt(o)===Y?"*/":`
2
+ `;for(;!a.endsWith(u);)a+=e[o++];i.push({type:"comment",value:a})}else{for(const u of f)u.length>a.length&&e.startsWith(u,o-1)&&(a=u);o+=a.length-1,i.push({type:"symbol",value:a})}p=s}return i}const Q=RegExp.prototype.test.bind(/^\w/),_e=RegExp.prototype.test.bind(/[^\w\\]/),ee=RegExp.prototype.test.bind(/^[_A-Za-z]/),ye=RegExp.prototype.test.bind(/[;{}\\@]/),te=RegExp.prototype.test.bind(/^(binding|group|layout|uniform|in|out|attribute|varying)$/);function be(e,{mangle:o=!1,mangleMap:i=new Map,mangleExternals:p=!1}={}){var d,f,a,s,u,h,_,y,b,D,w,S,k,C,L,A,M,E,B,R,F,O;e=e.replace(/(^\s*#[^\\]*?)(\n|\/[\/\*])/gm,"$1\\$2");const T=new Map,r=J(e).filter(t=>t.type!=="whitespace"&&t.type!=="comment");let I=-1,P=-1,g=-1,m="";for(let t=0;t<r.length;t++){const n=r[t];(te(n.value)||ye((d=r[t-1])==null?void 0:d.value))&&(P=t),n.value==="{"&&ee((f=r[t-1])==null?void 0:f.value)?g=t-1:n.value==="}"&&(g=-1),Q(n.value)&&Q((a=r[t-1])==null?void 0:a.value)&&(m+=" "),_e(n.value)&&(((s=r[t-2])==null?void 0:s.value)==="#"&&((u=r[t-1])==null?void 0:u.value)==="include"||((h=r[t-3])==null?void 0:h.value)==="#"&&((_=r[t-2])==null?void 0:_.value)==="define")&&(m+=" ");let c=n.value;if(((y=r[t-1])==null?void 0:y.value)==="."&&(c=`${(b=r[t-2])==null?void 0:b.value}.`+c),n.type==="identifier"&&c!=="main"&&(typeof o=="boolean"?o:o(n,t,r))){const G=((D=r[t-1])==null?void 0:D.value)==="}"&&((w=r[t+1])==null?void 0:w.value)===";",v=te((S=r[P])==null?void 0:S.value),V=v&&((k=r[t-1])==null?void 0:k.value)===",";let l=(C=i.get(c))!=null?C:T.get(c);if(!l&&g===-1&&(ee((L=r[t-1])==null?void 0:L.value)||G||V||((A=r[t-1])==null?void 0:A.type)==="symbol"&&((M=r[t+1])==null?void 0:M.value)===":")&&(p||!v)){const z=p&&v||((E=r[t-2])==null?void 0:E.value)==="#"||G||V||((B=r[t-1])==null?void 0:B.value)==="fn"&&(((R=r[t-2])==null?void 0:R.value)===")"||((F=r[t-3])==null?void 0:F.value)==="@")?i:T;for(;!l||z.has(l);){l="",I++;let x=I;for(;x>0;)l=String.fromCharCode(97+(x-1)%26)+l,x=Math.floor(x/26)}z.set(c,l)}m+=l!=null?l:n.value}else n.value==="#"&&((O=r[t-1])==null?void 0:O.value)!=="\\"?m+=`
3
3
  #`:n.value==="\\"?m+=`
4
- `:m+=n.value}return m.trim()}export{L as GLSL_KEYWORDS,M as GLSL_SYMBOLS,C as WGSL_KEYWORDS,B as WGSL_SYMBOLS,ne as minify,P as tokenize};
4
+ `:m+=n.value}return m.trim()}export{U as GLSL_KEYWORDS,W as GLSL_SYMBOLS,q as WGSL_KEYWORDS,$ as WGSL_SYMBOLS,be as minify,J as tokenize};
5
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/constants.ts","../src/tokenizer.ts","../src/minifier.ts"],"sourcesContent":null,"names":["WGSL_KEYWORDS","GLSL_KEYWORDS","SYMBOLS","GLSL_SYMBOLS","WGSL_SYMBOLS","isWGSL","isFloat","isInt","isBool","ZERO","NINE","A","Z","LF","CR","TAB","SPACE","UNDERSCORE","SLASH","STAR","HASH","AT","isDigit","c","isAlpha","isLine","isSpace","isIdent","isMacro","tokenize","code","index","tokens","prev","KEYWORDS","value","char","terminator","symbol","isWord","isSymbol","isName","isStorage","minify","mangle","mangleMap","mangleExternals","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","exclude","token","mangleIndex","blockIndex","minified","i","renamed","j"],"mappings":"AACO,MAAMA,EAAgB,CAE3B,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QAGA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UAGA,QACA,SACA,OACA,MACA,MACA,MAUA,MACA,UACA,qBACA,aACA,aACA,mBACA,aACA,eACA,qBACA,0BACA,qBACA,qBACA,2BACA,qBACA,mBACA,yBACA,qBACA,2BACA,gCACA,MAMA,QACA,UACA,QACA,OACA,QACA,eACA,WACA,aACA,UACA,UACA,OACA,SACA,QACA,KACA,MACA,KACA,MACA,OACA,WACA,SACA,SACA,SACA,OACA,MACA,QAGA,aACA,OACA,OACA,WACA,SACA,UACA,UACA,KACA,MACA,eACA,QACA,YACA,OACA,QACA,SACA,OACA,gBACA,OACA,QACA,QACA,WACA,YACA,WACA,WACA,eACA,SACA,UACA,mBACA,UACA,aACA,YACA,YACA,YACA,QACA,WACA,WACA,SACA,SACA,mBACA,KACA,eACA,OACA,WACA,SACA,UACA,SACA,WACA,MACA,cACA,SACA,QACA,UACA,SACA,OACA,UACA,MACA,OACA,cACA,SACA,QACA,MACA,MACA,KACA,OACA,aACA,SACA,SACA,aACA,YACA,SACA,OACA,QACA,cACA,QACA,UACA,OACA,MACA,SACA,OACA,MACA,UACA,YACA,MACA,MACA,WACA,WACA,kBACA,gBACA,OACA,UACA,KACA,WACA,UACA,aACA,YACA,OACA,QACA,gBACA,UACA,YACA,WACA,OACA,YACA,MACA,SACA,OACA,WACA,MACA,aACA,WACA,mBACA,WACA,WACA,WACA,OACA,MACA,SACA,SACA,SACA,QACA,SACA,gBACA,cACA,MACA,aACA,QACA,SACA,WACA,OACA,eACA,QACA,QACA,MACA,OACA,UACA,SACA,WACA,SACA,MACA,MACA,KACA,QACA,SACA,QACA,SACA,UACA,MACA,QACA,UACA,UACA,WACA,OACA,QACA,OACA,YACA,QAGA,SACA,WACA,WACA,WACA,SACA,YACA,SACA,MACA,eACA,aACA,YACA,QACA,UACA,kBAGA,cACA,SACA,OAGA,SACA,WACA,SAGA,eACA,iBACA,WACA,eACA,aACA,sBACA,yBACA,uBACA,eACA,iBACA,eACA,cAGA,OACA,QACA,aAGA,WACA,UACA,YACA,UACA,UAGA,aACA,aACA,YACA,YACA,aACA,aACA,cACA,UACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,cACA,aAGA,MAGA,MACA,MACA,SAGA,cAGA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,oBACA,eACA,qBACA,QACA,UACA,cACA,WACA,MACA,MACA,OACA,cACA,cACA,kBACA,mBACA,QACA,MACA,QACA,QACA,aACA,cACA,QACA,SACA,MACA,OACA,MACA,MACA,MACA,OACA,YACA,MACA,gBACA,UACA,UACA,UACA,cACA,QACA,WACA,OACA,MACA,OACA,aACA,OACA,OACA,MACA,OACA,YACA,QAGA,OACA,aACA,WACA,OACA,aACA,WACA,SACA,eACA,aAGA,oBACA,gBACA,uBACA,cACA,mBACA,mBACA,oBACA,gBACA,oBACA,uBACA,4BACA,oBACA,qBACA,+BAGA,aACA,cACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,iBACA,4BAGA,eACA,eACA,gBACA,gBACA,gBAGA,iBACA,iBACA,kBACA,kBACA,kBAGA,iBACA,mBACA,sBACF,EAIaC,EAAgB,CAE3B,QACA,UACA,SACA,WACA,OACA,SACA,QACA,WACA,KACA,MACA,QACA,SACA,OACA,UACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OACA,OACA,QACA,YACA,UACA,SACA,OACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,UACA,QACA,YACA,YACA,YACA,cACA,kBACA,oBACA,iBACA,uBACA,aACA,aACA,eACA,kBACA,aACA,aACA,eACA,kBACA,SAGA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,cACA,gBACA,QACA,SACA,aACA,SACA,YACA,SACA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,OACA,SACA,WACA,WACA,SACA,SACA,SACA,WACA,YACA,OACA,QACA,SACA,OACA,QACA,WACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,gBACA,SACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,aACA,WACA,WACA,WACA,aACA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,cACA,eACA,eACA,YACA,kBACA,iBACA,uBACA,aACA,kBACA,aACA,kBACA,gBACA,sBACA,iBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,eACA,mBACA,oBACA,oBACA,SACA,OACA,YACA,QAGA,UACA,SACA,MACA,SACA,UACA,QACA,QACA,SACA,SACA,UACA,aACA,WACA,QAGA,UAGA,WACA,WACA,cACA,QAGA,cACA,gBACA,cACA,eAGA,eACA,iBACA,eACA,gBAGA,sBACA,6BACA,4BACA,6BACA,gCACA,kCACA,0BACA,+BACA,oBACA,2BACA,2BAGA,0BACA,gBAGA,UACA,UACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QAGA,MACA,MACA,MACA,OACA,OACA,OACA,cAGA,MACA,OACA,QACA,QACA,QACA,YACA,OACA,QACA,MACA,OACA,MACA,MACA,QACA,MACA,OACA,aACA,QACA,QACA,iBACA,kBACA,iBACA,kBAGA,gBACA,kBACA,gBACA,kBACA,eACA,iBAGA,SACA,WACA,MACA,QACA,YACA,cACA,UACA,UACA,iBACA,eACA,YACA,cACA,UAGA,WAC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"}
1
+ {"version":3,"file":"index.js","sources":["../src/constants.ts","../src/tokenizer.ts","../src/minifier.ts"],"sourcesContent":null,"names":["WGSL_KEYWORDS","GLSL_KEYWORDS","SYMBOLS","GLSL_SYMBOLS","WGSL_SYMBOLS","isWGSL","isFloat","isInt","isBool","ZERO","NINE","A","Z","LF","CR","TAB","SPACE","UNDERSCORE","SLASH","STAR","HASH","AT","isDigit","c","isAlpha","isLine","isSpace","isIdent","isMacro","tokenize","code","index","tokens","prev","KEYWORDS","value","char","terminator","symbol","isWord","isSymbol","isName","isScoped","isStorage","minify","mangle","mangleMap","mangleExternals","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","mangleCache","token","mangleIndex","lineIndex","blockIndex","minified","i","prefix","namespace","storage","list","renamed","cache","j"],"mappings":"AACO,MAAMA,EAAgB,CAE3B,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QAGA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,SACA,UACA,UAGA,QACA,SACA,OACA,MACA,MACA,MAUA,MACA,UACA,qBACA,aACA,aACA,mBACA,aACA,eACA,qBACA,0BACA,qBACA,qBACA,2BACA,qBACA,mBACA,yBACA,qBACA,2BACA,gCACA,MAMA,QACA,UACA,QACA,OACA,QACA,eACA,WACA,aACA,UACA,UACA,OACA,SACA,QACA,KACA,MACA,KACA,MACA,OACA,WACA,SACA,SACA,SACA,OACA,MACA,QAGA,aACA,OACA,OACA,WACA,SACA,UACA,UACA,KACA,MACA,eACA,QACA,YACA,OACA,QACA,SACA,OACA,gBACA,OACA,QACA,QACA,WACA,YACA,WACA,WACA,eACA,SACA,UACA,mBACA,UACA,aACA,YACA,YACA,YACA,QACA,WACA,WACA,SACA,SACA,mBACA,KACA,eACA,OACA,WACA,SACA,UACA,SACA,WACA,MACA,cACA,SACA,QACA,UACA,SACA,OACA,UACA,MACA,OACA,cACA,SACA,QACA,MACA,MACA,KACA,OACA,aACA,SACA,SACA,aACA,YACA,SACA,OACA,QACA,cACA,QACA,UACA,OACA,MACA,SACA,OACA,MACA,UACA,YACA,MACA,MACA,WACA,WACA,kBACA,gBACA,OACA,UACA,KACA,WACA,UACA,aACA,YACA,OACA,QACA,gBACA,UACA,YACA,WACA,OACA,YACA,MACA,SACA,OACA,WACA,MACA,aACA,WACA,mBACA,WACA,WACA,WACA,OACA,MACA,SACA,SACA,SACA,QACA,SACA,gBACA,cACA,MACA,aACA,QACA,SACA,WACA,OACA,eACA,QACA,QACA,MACA,OACA,UACA,SACA,WACA,SACA,MACA,MACA,KACA,QACA,SACA,QACA,SACA,UACA,MACA,QACA,UACA,UACA,WACA,OACA,QACA,OACA,YACA,QAGA,SACA,WACA,WACA,WACA,SACA,YACA,SACA,MACA,eACA,aACA,YACA,QACA,UACA,kBAGA,cACA,SACA,OAGA,SACA,WACA,SAGA,eACA,iBACA,WACA,eACA,aACA,sBACA,yBACA,uBACA,eACA,iBACA,eACA,cAGA,OACA,QACA,aAGA,WACA,UACA,YACA,UACA,UAGA,aACA,aACA,YACA,YACA,aACA,aACA,cACA,UACA,UACA,WACA,WACA,WACA,YACA,aACA,aACA,cACA,aAGA,MAGA,MACA,MACA,SAGA,cAGA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,oBACA,eACA,qBACA,QACA,UACA,cACA,WACA,MACA,MACA,OACA,cACA,cACA,kBACA,mBACA,QACA,MACA,QACA,QACA,aACA,cACA,QACA,SACA,MACA,OACA,MACA,MACA,MACA,OACA,YACA,MACA,gBACA,UACA,UACA,UACA,cACA,QACA,WACA,OACA,MACA,OACA,aACA,OACA,OACA,MACA,OACA,YACA,QAGA,OACA,aACA,WACA,OACA,aACA,WACA,SACA,eACA,aAGA,oBACA,gBACA,uBACA,cACA,mBACA,mBACA,oBACA,gBACA,oBACA,uBACA,4BACA,oBACA,qBACA,+BAGA,aACA,cACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,iBACA,4BAGA,eACA,eACA,gBACA,gBACA,gBAGA,iBACA,iBACA,kBACA,kBACA,kBAGA,iBACA,mBACA,sBACF,EAIaC,EAAgB,CAE3B,QACA,UACA,SACA,WACA,OACA,SACA,QACA,WACA,KACA,MACA,QACA,SACA,OACA,UACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OACA,OACA,QACA,YACA,UACA,SACA,OACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,UACA,QACA,YACA,YACA,YACA,cACA,kBACA,oBACA,iBACA,uBACA,aACA,aACA,eACA,kBACA,aACA,aACA,eACA,kBACA,SAGA,YACA,UACA,WACA,WACA,WACA,WACA,YACA,WACA,cACA,gBACA,QACA,SACA,aACA,SACA,YACA,SACA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,OACA,SACA,WACA,WACA,SACA,SACA,SACA,WACA,YACA,OACA,QACA,SACA,OACA,QACA,WACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,gBACA,SACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,aACA,WACA,WACA,WACA,aACA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,cACA,eACA,eACA,YACA,kBACA,iBACA,uBACA,aACA,kBACA,aACA,kBACA,gBACA,sBACA,iBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,eACA,mBACA,oBACA,oBACA,SACA,OACA,YACA,QAGA,UACA,SACA,MACA,SACA,UACA,QACA,QACA,SACA,SACA,UACA,aACA,WACA,QAGA,UAGA,WACA,WACA,cACA,QAGA,cACA,gBACA,cACA,eAGA,eACA,iBACA,eACA,gBAGA,sBACA,6BACA,4BACA,6BACA,gCACA,kCACA,0BACA,+BACA,oBACA,2BACA,2BAGA,0BACA,gBAGA,UACA,UACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QAGA,MACA,MACA,MACA,OACA,OACA,OACA,cAGA,MACA,OACA,QACA,QACA,QACA,YACA,OACA,QACA,MACA,OACA,MACA,MACA,QACA,MACA,OACA,aACA,QACA,QACA,iBACA,kBACA,iBACA,kBAGA,gBACA,kBACA,gBACA,kBACA,eACA,iBAGA,SACA,WACA,MACA,QACA,YACA,cACA,UACA,UACA,iBACA,eACA,YACA,cACA,UAGA,WAC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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shaderkit",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "description": "Tools and IntelliSense for GLSL and WGSL.",
5
5
  "keywords": [
6
6
  "shaders",
package/src/minifier.ts CHANGED
@@ -14,7 +14,8 @@ export interface MinifyOptions {
14
14
  const isWord = RegExp.prototype.test.bind(/^\w/)
15
15
  const isSymbol = RegExp.prototype.test.bind(/[^\w\\]/)
16
16
  const isName = RegExp.prototype.test.bind(/^[_A-Za-z]/)
17
- const isStorage = RegExp.prototype.test.bind(/^(uniform|in|out|attribute|varying|,)$/)
17
+ const isScoped = RegExp.prototype.test.bind(/[;{}\\@]/)
18
+ const isStorage = RegExp.prototype.test.bind(/^(binding|group|layout|uniform|in|out|attribute|varying)$/)
18
19
 
19
20
  /**
20
21
  * Minifies a string of GLSL or WGSL code.
@@ -26,21 +27,25 @@ export function minify(
26
27
  // Escape newlines after directives, skip comments
27
28
  code = code.replace(/(^\s*#[^\\]*?)(\n|\/[\/\*])/gm, '$1\\$2')
28
29
 
29
- const exclude = new Set<string>(mangleMap.values())
30
+ const mangleCache = new Map()
30
31
  const tokens: Token[] = tokenize(code).filter((token) => token.type !== 'whitespace' && token.type !== 'comment')
31
32
 
32
- let mangleIndex: number = 0
33
- let blockIndex: number | null = null
33
+ let mangleIndex: number = -1
34
+ let lineIndex: number = -1
35
+ let blockIndex: number = -1
34
36
  let minified: string = ''
35
37
  for (let i = 0; i < tokens.length; i++) {
36
38
  const token = tokens[i]
37
39
 
38
- // Pad alphanumeric tokens
39
- if (isWord(token.value) && isWord(tokens[i - 1]?.value)) minified += ' '
40
+ // Track possibly external scopes
41
+ if (isStorage(token.value) || isScoped(tokens[i - 1]?.value)) lineIndex = i
40
42
 
41
43
  // Mark enter/leave block-scope
42
44
  if (token.value === '{' && isName(tokens[i - 1]?.value)) blockIndex = i - 1
43
- else if (token.value === '}') blockIndex = null
45
+ else if (token.value === '}') blockIndex = -1
46
+
47
+ // Pad alphanumeric tokens
48
+ if (isWord(token.value) && isWord(tokens[i - 1]?.value)) minified += ' '
44
49
 
45
50
  // Pad symbols around #define and three.js #include (white-space sensitive)
46
51
  if (
@@ -50,31 +55,54 @@ export function minify(
50
55
  )
51
56
  minified += ' '
52
57
 
58
+ let prefix = token.value
59
+ if (tokens[i - 1]?.value === '.') {
60
+ prefix = `${tokens[i - 2]?.value}.` + prefix
61
+ }
62
+
53
63
  // Mangle declarations and their references
54
64
  if (
55
65
  token.type === 'identifier' &&
56
66
  // Filter variable names
57
- token.value !== 'main' &&
67
+ prefix !== 'main' &&
58
68
  (typeof mangle === 'boolean' ? mangle : mangle(token, i, tokens))
59
69
  ) {
60
- let renamed = mangleMap.get(token.value)
70
+ const namespace = tokens[i - 1]?.value === '}' && tokens[i + 1]?.value === ';'
71
+ const storage = isStorage(tokens[lineIndex]?.value)
72
+ const list = storage && tokens[i - 1]?.value === ','
73
+ let renamed = mangleMap.get(prefix) ?? mangleCache.get(prefix)
61
74
  if (
62
75
  // no-op
63
76
  !renamed &&
64
77
  // Skip struct properties
65
- blockIndex == null &&
78
+ blockIndex === -1 &&
66
79
  // Is declaration, reference, namespace, or comma-separated list
67
80
  (isName(tokens[i - 1]?.value) ||
68
81
  // uniform Type { ... } name;
69
- (tokens[i - 1]?.value === '}' && tokens[i + 1]?.value === ';') ||
70
- // float foo, bar;
71
- tokens[i - 1]?.value === ',' ||
82
+ namespace ||
83
+ // uniform float foo, bar;
84
+ list ||
72
85
  // fn (arg: type) -> void
73
- tokens[i + 1]?.value === ':') &&
86
+ (tokens[i - 1]?.type === 'symbol' && tokens[i + 1]?.value === ':')) &&
74
87
  // Skip shader externals when disabled
75
- (mangleExternals || (!isStorage(tokens[i - 1]?.value) && !isStorage(tokens[i - 2]?.value)))
88
+ (mangleExternals || !storage)
76
89
  ) {
77
- while (!renamed || exclude.has(renamed)) {
90
+ // Write shader externals and preprocessor defines to mangleMap for multiple passes
91
+ // TODO: do so via scope tracking
92
+ const isExternal =
93
+ // Shader externals
94
+ (mangleExternals && storage) ||
95
+ // Defines
96
+ tokens[i - 2]?.value === '#' ||
97
+ // Namespaced uniform structs
98
+ namespace ||
99
+ // Comma-separated list of uniforms
100
+ list ||
101
+ // WGSL entrypoints via @stage or @workgroup_size(...)
102
+ (tokens[i - 1]?.value === 'fn' && (tokens[i - 2]?.value === ')' || tokens[i - 3]?.value === '@'))
103
+ const cache = isExternal ? mangleMap : mangleCache
104
+
105
+ while (!renamed || cache.has(renamed)) {
78
106
  renamed = ''
79
107
  mangleIndex++
80
108
 
@@ -85,7 +113,7 @@ export function minify(
85
113
  }
86
114
  }
87
115
 
88
- mangleMap.set(token.value, renamed)
116
+ cache.set(prefix, renamed)
89
117
  }
90
118
 
91
119
  minified += renamed ?? token.value