@stacksjs/stx 0.2.322 → 0.2.323
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/dist/builtins/image-worker.d.ts +17 -3
- package/dist/builtins/image-worker.js +10 -4
- package/dist/{chunk-62s55rv0.js → chunk-15h8zbr1.js} +1 -1
- package/dist/{chunk-8cwenbw3.js → chunk-1kqn4ywr.js} +1 -1
- package/dist/{chunk-hrs2pepp.js → chunk-2cjp5kmr.js} +1 -1
- package/dist/{chunk-3vydymb5.js → chunk-4pwey6qy.js} +1 -1
- package/dist/chunk-4x9e9edz.js +2 -0
- package/dist/{chunk-qsxtjtvv.js → chunk-5f203pgm.js} +1 -1
- package/dist/{chunk-mp8nekfh.js → chunk-5jwn94fm.js} +1 -1
- package/dist/{chunk-eqsqs6yj.js → chunk-5ydsnpgn.js} +1 -1
- package/dist/{chunk-r05ekvht.js → chunk-5zhwrye8.js} +1 -1
- package/dist/{chunk-sn1edmp8.js → chunk-6artbzf7.js} +1 -1
- package/dist/{chunk-nh2ze1a7.js → chunk-6ks1xjcv.js} +1 -1
- package/dist/chunk-71w3p6h0.js +3 -0
- package/dist/{chunk-mr33j493.js → chunk-7a7gw1qe.js} +1 -1
- package/dist/{chunk-vy2nvpbw.js → chunk-7gpnkjpq.js} +2 -2
- package/dist/{chunk-bdr8dz57.js → chunk-7pa3980x.js} +1 -1
- package/dist/{chunk-ez93xc1z.js → chunk-7tsyw383.js} +1 -1
- package/dist/{chunk-gg74g03k.js → chunk-8226tjg5.js} +1 -1
- package/dist/{chunk-kwrj745h.js → chunk-86v82980.js} +1 -1
- package/dist/{chunk-k3w1ctbb.js → chunk-8j9mv808.js} +1 -1
- package/dist/{chunk-gyprd56b.js → chunk-9hczd3np.js} +1 -1
- package/dist/{chunk-r8scz4g7.js → chunk-az1a4jy7.js} +1 -1
- package/dist/{chunk-7dd808wv.js → chunk-b6vf9xmh.js} +1 -1
- package/dist/{chunk-nytw8ek5.js → chunk-c2wphx6w.js} +1 -1
- package/dist/{chunk-90ma145g.js → chunk-c8msyn2j.js} +1 -1
- package/dist/{chunk-yc7fptr2.js → chunk-cx0rme3z.js} +2 -2
- package/dist/{chunk-kb040j0d.js → chunk-ds2vkt6d.js} +1 -1
- package/dist/{chunk-69knrrh9.js → chunk-dtc491cn.js} +1 -1
- package/dist/{chunk-fps56kyx.js → chunk-dxnctr7w.js} +1 -1
- package/dist/{chunk-dvszm8ay.js → chunk-e446r5xq.js} +1 -1
- package/dist/{chunk-vtn57jw8.js → chunk-er6x674c.js} +8 -8
- package/dist/{chunk-yyq7rpw2.js → chunk-fwg5gecv.js} +1 -1
- package/dist/{chunk-0050wktp.js → chunk-ga3rmshp.js} +1 -1
- package/dist/{chunk-bw0488z7.js → chunk-h6epa11z.js} +1 -1
- package/dist/{chunk-9q9z1027.js → chunk-jg080eh0.js} +1 -1
- package/dist/{chunk-ycjjd5js.js → chunk-jtrtdrrd.js} +1 -1
- package/dist/{chunk-2astj1fq.js → chunk-kfsyh3pd.js} +17 -17
- package/dist/{chunk-mz9twa1f.js → chunk-knjwt41m.js} +1 -1
- package/dist/{chunk-nkpww053.js → chunk-nyb5ayg5.js} +1 -1
- package/dist/{chunk-y3egkbc2.js → chunk-p20x08t1.js} +1 -1
- package/dist/{chunk-54mnf7n2.js → chunk-p858jrzz.js} +1 -1
- package/dist/{chunk-e9dtt2cw.js → chunk-qyd0jn04.js} +2 -2
- package/dist/{chunk-exrnsgtc.js → chunk-s41qv92n.js} +1 -1
- package/dist/{chunk-k0ht65ts.js → chunk-sj1v4gqz.js} +1 -1
- package/dist/{chunk-2k9qqkx2.js → chunk-symq5j70.js} +1 -1
- package/dist/{chunk-pwwhcdh3.js → chunk-vrr8x68g.js} +1 -1
- package/dist/{chunk-namj6apv.js → chunk-vtnj77ge.js} +1 -1
- package/dist/{chunk-c3pg3yx4.js → chunk-x0dd9xa2.js} +1 -1
- package/dist/chunk-xw2bmem3.js +2 -0
- package/dist/{chunk-y1zwvdn5.js → chunk-yb7c7b27.js} +1 -1
- package/dist/{chunk-zcea9z8j.js → chunk-ygtb4fpt.js} +1 -1
- package/dist/{chunk-asf7qyyc.js → chunk-ymdhvwcn.js} +1 -1
- package/dist/cli.js +7 -7
- package/dist/craft-entry.js +1 -1
- package/dist/craft.js +1 -1
- package/dist/pwa.js +1 -1
- package/dist/ssg.js +2 -2
- package/package.json +5 -5
- package/dist/chunk-1yxtx5y2.js +0 -2
- package/dist/chunk-cevmy9cn.js +0 -2
- package/dist/chunk-df5wrw50.js +0 -3
package/dist/chunk-1yxtx5y2.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Ue as a}from"./chunk-mz9twa1f.js";import"./chunk-dvvx1wny.js";import"./chunk-2astj1fq.js";import"./chunk-9e6pyjwz.js";import"./chunk-z698hwht.js";import"./chunk-70zb3560.js";import"./chunk-zsapb653.js";import"./chunk-kwrj745h.js";import"./chunk-df5wrw50.js";import"./chunk-e10pfrds.js";import"./chunk-ecbqmesm.js";import"./chunk-namj6apv.js";import"./chunk-dgrayagx.js";import"./chunk-2hyxkzpc.js";import"./chunk-r1g0bnpv.js";import"./chunk-2dk3ym1g.js";import"./chunk-8n0mjaf6.js";import"./chunk-5az2jb8y.js";import"./chunk-rcvnh2p7.js";import"./chunk-qrkxyb5p.js";export{a as buildApp};
|
package/dist/chunk-cevmy9cn.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Pi as a,Qi as b}from"./chunk-yyq7rpw2.js";import"./chunk-xwxdwqn9.js";import"./chunk-sn1edmp8.js";import"./chunk-qsxtjtvv.js";import"./chunk-2astj1fq.js";import"./chunk-9e6pyjwz.js";import"./chunk-z698hwht.js";import"./chunk-70zb3560.js";import"./chunk-zsapb653.js";import"./chunk-kwrj745h.js";import"./chunk-df5wrw50.js";import"./chunk-e10pfrds.js";import"./chunk-ecbqmesm.js";import"./chunk-namj6apv.js";import"./chunk-dgrayagx.js";import"./chunk-2hyxkzpc.js";import"./chunk-r1g0bnpv.js";import"./chunk-2dk3ym1g.js";import"./chunk-8n0mjaf6.js";import"./chunk-5az2jb8y.js";import"./chunk-rcvnh2p7.js";import"./chunk-qrkxyb5p.js";export{a as getStoreScript,b as clearStoreCache};
|
package/dist/chunk-df5wrw50.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{createHash as u}from"crypto";import B from"fs";import Y from"path";import{decode as i,generateThumbHash as r}from"ts-images";import{createImageDeliveryCatalog as b}from"ts-images/delivery";import L from"fs";function _(Q,Z,$){let J=Buffer.alloc($),M=L.readSync(Q,J,0,$,Z);return J.subarray(0,M)}function R(Q){if(Q.length<25)return!1;let Z=(J,M)=>String.fromCharCode(...Q.subarray(J,M));if(Z(0,4)!=="RIFF"||Z(8,12)!=="WEBP")return!1;let $=Z(12,16);if($==="VP8X")return(Q[20]&16)!==0;if($==="VP8L")return((Q[21]|Q[22]<<8|Q[23]<<16|Q[24]<<24)>>>28&1)===1;return!1}function A(Q){let Z;try{Z=L.openSync(Q,"r");let $=_(Z,0,33);if($.length>=3&&$[0]===255&&$[1]===216&&$[2]===255)return"none";if($.length>=26&&$[0]===137&&$.toString("latin1",1,4)==="PNG"){let J=$[25];if(J===4||J===6)return"possible";let M=8;for(let X=0;X<64;X++){let G=_(Z,M,8);if(G.length<8)return"unknown";let x=G.toString("latin1",4,8);if(x==="tRNS")return"possible";if(x==="IDAT"||x==="IEND")return"none";M+=12+G.readUInt32BE(0)}return"unknown"}if($.length>=25&&$.toString("latin1",0,4)==="RIFF"&&$.toString("latin1",8,12)==="WEBP"){if(R($))return"possible";let J=$.toString("latin1",12,16);return J==="VP8 "||J==="VP8X"?"none":"unknown"}return"unknown"}catch{return"unknown"}finally{if(Z!==void 0)L.closeSync(Z)}}import p from"fs";import I from"os";import{fileURLToPath as d}from"url";var F=Symbol("stx.image-worker.unavailable");function n(Q=typeof I.availableParallelism==="function"?I.availableParallelism():I.cpus().length){return Math.max(1,Math.min(2,Q-1))}var C=0,D=[];async function o(){if(C<n()){C++;return}await new Promise((Q)=>D.push(Q)),C++}function l(){C--,D.shift()?.()}function s(){let Q=import.meta.url.endsWith(".ts")?"ts":"js",Z=new URL(`./image-warmup-worker.${Q}`,import.meta.url);try{return Z.protocol==="file:"&&p.existsSync(d(Z))?Z:void 0}catch{return}}async function m(Q,Z){if(typeof Worker>"u")return F;let $=s();if(!$)return F;await o();try{return await new Promise((J,M)=>{let X;try{X=new Worker($)}catch{J(F);return}let G=!1,x=!1,q=(j)=>{if(x)return;x=!0,j(),X.terminate()};X.addEventListener("message",(j)=>{let z=j.data;if(z.type==="ready"){G=!0,X.postMessage({task:Q,args:Z});return}if(z.type==="result"){q(()=>J(z.value));return}let T=Error(z.error?.message??"image worker failed");if(z.error?.name)T.name=z.error.name;if(z.error?.stack)T.stack=z.error.stack;q(()=>M(T))}),X.addEventListener("error",(j)=>{q(()=>G?M(j.error instanceof Error?j.error:Error(j.message||"image worker crashed")):J(F))}),X.addEventListener("close",()=>{q(()=>G?M(Error("image worker exited before it finished")):J(F))})})}finally{l()}}var t=new Set([".avif",".jpeg",".jpg",".png",".webp"]),a=[320,640,960,1280,1920],P="/_stx/images",e=`stx:${P}:alpha-1`,QQ=["@stacksjs/ts-webp","@stacksjs/ts-avif"],N;function ZQ(Q,Z){let $=Y.dirname(Bun.resolveSync(Q,Z));while($!==Y.dirname($)){let J=Y.join($,"package.json");if(B.existsSync(J)){let M=JSON.parse(B.readFileSync(J,"utf8"));if(M.name===Q)return M.version}$=Y.dirname($)}return}function LQ(Q){N=Q}function $Q(){if(N!==void 0)return N;let Q;try{Q=Y.dirname(Bun.resolveSync("ts-images",import.meta.dir))}catch{}return N=QQ.map((Z)=>{let $;try{$=Q?ZQ(Z,Q):void 0}catch{}return`${Z.replace("@stacksjs/","")}@${$??"unknown"}`}).join("+"),N}var U=new Map,V=new Set,k=new Set;function JQ(Q){return`/${Q.split(Y.sep).map(encodeURIComponent).join("/")}`}function MQ(Q){let Z=Y.extname(Q),$=Q.slice(0,-Z.length).replace(/[^a-zA-Z0-9_-]+/g,"-").replace(/^-+|-+$/g,""),J=u("sha256").update(Q).digest("hex").slice(0,8);return`${$||"image"}-${J}`}function v(Q,Z=`stx:${P}`){let $=(J)=>`${P}/${J.split("/").map(encodeURIComponent).join("/")}`;return{cacheNamespace:Z,async stat(J){let M=Y.join(Q,J);try{let X=await B.promises.stat(M);return X.size>0?{bytes:X.size,path:M,url:$(J)}:null}catch{return null}},async write(J,M){let X=Y.join(Q,J);await B.promises.mkdir(Y.dirname(X),{recursive:!0});let G=`${X}.${process.pid}.tmp`;return await B.promises.writeFile(G,M),await B.promises.rename(G,X),{bytes:M.byteLength,path:X,url:$(J)}},url:$}}async function f(Q,Z=Q){let $=await B.promises.readdir(Z,{withFileTypes:!0});$.sort((M,X)=>M.name.localeCompare(X.name));let J=[];for(let M of $){let X=Y.join(Z,M.name);if(M.isDirectory()){J.push(...await f(Q,X));continue}if(!M.isFile()||!t.has(Y.extname(M.name).toLowerCase()))continue;J.push({absolutePath:X,relativePath:Y.relative(Q,X)})}return J}function g(Q,Z){return Q.map(($)=>({key:JQ($.relativePath),input:$.absolutePath,name:MQ($.relativePath),...XQ($.absolutePath)?{options:{storage:Z}}:{}}))}function XQ(Q){return A(Q)==="possible"}function GQ(Q){for(let Z=3;Z<Q.length;Z+=4)if(Q[Z]!==255)return!0;return!1}async function qQ(Q){let Z=Object.entries(Q).filter(([,M])=>M.fallback.format==="png"),$=new Set,J=8;for(let M=0;M<Z.length;M+=8)await Promise.all(Z.slice(M,M+8).map(async([X,G])=>{let x=G.variants.filter((q)=>q.format==="png").sort((q,j)=>q.width-j.width)[0];try{let q=await i(new Uint8Array(await B.promises.readFile(x?.path??G.fallback.path)));if(GQ(q.data))$.add(X)}catch{$.add(X)}}));return $}function YQ(Q,Z){let $=[];for(let J of Z){let M=Q[J],X=M?.variants.filter((x)=>x.format==="webp")??[];if(!M||X.length===0)continue;if(!X.some((x)=>{let q;try{return q=B.openSync(x.path,"r"),!R(_(q,0,32))}catch{return!0}finally{if(q!==void 0)B.closeSync(q)}}))continue;if(M.variants=M.variants.filter((x)=>x.format!=="webp"),delete M.sources.webp,$.push(J),!k.has(J))k.add(J),console.warn(`[stx-images] ${J} is transparent but its WebP variants have no alpha channel; serving PNG instead. Upgrade @stacksjs/ts-webp to 0.1.6 or later.`)}return $}async function xQ(Q){let Z=[],$=8;for(let J=0;J<Q.length;J+=8){let M=Q.slice(J,J+8),X=await Promise.all(M.map(async(G)=>{try{return await r(G.absolutePath),G}catch{return console.warn(`[stx-images] Skipping unreadable raster: ${G.relativePath}`),null}}));Z.push(...X.filter((G)=>G!==null))}return Z}function E(Q){return Y.join(Q,"undecodable.json")}function jQ(Q){try{let Z=B.readFileSync(E(Q),"utf-8"),$=JSON.parse(Z);return $&&typeof $==="object"?$:{}}catch{return{}}}function BQ(Q,Z){try{B.mkdirSync(Y.dirname(E(Q)),{recursive:!0}),B.writeFileSync(E(Q),JSON.stringify(Z))}catch{}}function y(Q){try{let Z=B.statSync(Q);return{mtimeMs:Z.mtimeMs,size:Z.size}}catch{return}}function h(Q){if(!Q||Q.startsWith("data:")||Q.startsWith("blob:")||/^https?:\/\//i.test(Q)||Q.startsWith("//"))return;let Z=Q.split(/[?#]/,1)[0];if(!Z)return;try{return`/${Z.replace(/^\/+/,"").split("/").map(decodeURIComponent).map(encodeURIComponent).join("/")}`}catch{return}}function RQ(Q){let Z=h(Q);return Z?U.get(Z):void 0}function IQ(Q){let Z=h(Q);return Z?V.has(Z):!1}function S(){U=new Map,V=new Set}function EQ(){return{entries:[...U],transparent:[...V]}}function zQ(Q){U=new Map(Q.entries),V=new Set(Q.transparent)}async function wQ(Q,Z,$={}){if(!Q||!B.existsSync(Q))return S(),{count:0,fingerprint:""};if($.offThread){let K=await m("delivery",{publicDir:Q,outputDir:Z});if(K!==F)return zQ(K.state),K.result}let J=await f(Q);if(J.length===0)return S(),{count:0,fingerprint:""};let M=jQ(Z),X=J.filter((K)=>{let O=M[K.relativePath];if(!O)return!0;let H=y(K.absolutePath);return!H||H.mtimeMs!==O.mtimeMs||H.size!==O.size});if(X.length===0)return S(),{count:0,fingerprint:""};let G=v(Y.join(Z,"_stx","images"),`${e}:${$Q()}`),x={outDir:Y.join(Z,"_stx","images"),storage:v(Y.join(Z,"_stx","images")),baseUrl:P,widths:a,formats:["avif","webp"],quality:{avif:70,webp:78,jpeg:82,png:100},includeOriginal:!1,placeholder:!0,batchConcurrency:4,concurrency:4},q=X,j;try{j=await b({...x,entries:g(X,G)})}catch(K){if(q=await xQ(X),q.length===X.length)throw K;let O=new Set(q.map((W)=>W.relativePath)),H=!1;for(let W of X){if(O.has(W.relativePath))continue;let w=y(W.absolutePath);if(!w)continue;M[W.relativePath]=w,H=!0}if(H)BQ(Z,M);if(q.length===0)return S(),{count:0,fingerprint:""};j=await b({...x,entries:g(q,G)})}let z=await qQ(j.entries),T=YQ(j.entries,z);U=new Map(Object.entries(j.entries)),V=z;let c=z.size===0&&T.length===0?j.fingerprint:u("sha256").update(j.fingerprint).update(JSON.stringify({transparent:[...z].sort(),droppedWebp:T.sort()})).digest("hex");return{count:q.length,fingerprint:c}}
|
|
3
|
-
export{R as du,A as eu,F as fu,m as gu,LQ as hu,$Q as iu,RQ as ju,IQ as ku,S as lu,EQ as mu,zQ as nu,wQ as ou};
|