@stacksjs/stx 0.2.319 → 0.2.321
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-alpha.d.ts +26 -0
- package/dist/builtins/image-alpha.js +57 -0
- package/dist/builtins/image-delivery.d.ts +9 -0
- package/dist/builtins/image-delivery.js +77 -11
- package/dist/builtins/image-placeholder.d.ts +5 -0
- package/dist/builtins/image-placeholder.js +19 -3
- package/dist/builtins/stx-image.js +19 -6
- package/dist/{chunk-85p4dmft.js → chunk-0en7mkpa.js} +1 -1
- package/dist/{chunk-0mnv8pf5.js → chunk-0eydszkp.js} +1 -1
- package/dist/chunk-129fa2d9.js +2 -0
- package/dist/{chunk-acctstj3.js → chunk-1b2wksq3.js} +1 -1
- package/dist/{chunk-wm86mmgq.js → chunk-1q1qmmfn.js} +1 -1
- package/dist/{chunk-4ee1aaet.js → chunk-1r3ydhkx.js} +1 -1
- package/dist/chunk-1rdcew9t.js +2 -0
- package/dist/{chunk-ajhrz96a.js → chunk-1yv1v7hh.js} +1 -1
- package/dist/{chunk-tqayztkh.js → chunk-222swfwr.js} +1 -1
- package/dist/chunk-25m79xdw.js +2 -0
- package/dist/{chunk-2kv2gnzc.js → chunk-2925bmqr.js} +1 -1
- package/dist/{chunk-raxr83fs.js → chunk-2btrq8sz.js} +2 -2
- package/dist/chunk-2rkq7pd1.js +2 -0
- package/dist/chunk-2tcn2rw4.js +2 -0
- package/dist/{chunk-prry9kgy.js → chunk-33gkb5pr.js} +1 -1
- package/dist/{chunk-vhan24as.js → chunk-373fc0m2.js} +1 -1
- package/dist/{chunk-6c1ebjat.js → chunk-3erkb524.js} +1 -1
- package/dist/{chunk-ybct46zd.js → chunk-3ntb5zkk.js} +1 -1
- package/dist/{chunk-r3220h2n.js → chunk-3qt3cxh0.js} +1 -1
- package/dist/{chunk-b73h0vd8.js → chunk-3x0b8j25.js} +1 -1
- package/dist/chunk-48w09pf7.js +2 -0
- package/dist/chunk-4a2wcz8h.js +2 -0
- package/dist/chunk-4dtjqc90.js +2 -0
- package/dist/{chunk-djf1p5cy.js → chunk-4kp87md5.js} +1 -1
- package/dist/{chunk-3pv0qj5f.js → chunk-4zz9edh0.js} +1 -1
- package/dist/{chunk-51gea48g.js → chunk-526rr83q.js} +1 -1
- package/dist/{chunk-18p8dqya.js → chunk-5mdvkpt8.js} +1 -1
- package/dist/chunk-5sz2tmw3.js +2 -0
- package/dist/{chunk-322qz0cj.js → chunk-6r72pp2t.js} +1 -1
- package/dist/{chunk-397rqs12.js → chunk-70zb3560.js} +1 -1
- package/dist/{chunk-yzy6e4je.js → chunk-7b09hmk4.js} +10 -10
- package/dist/chunk-7je3fd68.js +2 -0
- package/dist/chunk-7kk2jb1j.js +3759 -0
- package/dist/chunk-7v72zj7x.js +2 -0
- package/dist/{chunk-0saq3nwy.js → chunk-8mspafdh.js} +1 -1
- package/dist/{chunk-bnq0p4r4.js → chunk-8q3a8g7m.js} +1 -1
- package/dist/{chunk-zebypbks.js → chunk-8q9qfy2v.js} +2 -2
- package/dist/chunk-8x78ed8t.js +2 -0
- package/dist/chunk-99yynes4.js +2 -0
- package/dist/{chunk-pknc4efv.js → chunk-9fjhmyje.js} +1 -1
- package/dist/{chunk-1ztjv7a4.js → chunk-9qxv7emz.js} +1 -1
- package/dist/{chunk-px0hqf1q.js → chunk-9whbqxsv.js} +1 -1
- package/dist/chunk-9zrmwtgh.js +2 -0
- package/dist/{chunk-0gbptqh2.js → chunk-a6q5dmq7.js} +1 -1
- package/dist/{chunk-s5wwa0t4.js → chunk-akefvpqr.js} +2 -2
- package/dist/chunk-bdwe7er9.js +2 -0
- package/dist/chunk-c5zfgpgx.js +2 -0
- package/dist/chunk-ced1qbdw.js +2 -0
- package/dist/{chunk-jryjwara.js → chunk-cey6rhqw.js} +1 -1
- package/dist/{chunk-v02j99gh.js → chunk-cfj7y2tp.js} +2 -2
- package/dist/{chunk-y4dd2n2n.js → chunk-cjf5h08r.js} +1 -1
- package/dist/chunk-cpa76anv.js +2 -0
- package/dist/{chunk-kexk6z9s.js → chunk-dr2rpkb4.js} +1 -1
- package/dist/{chunk-t5kwx6fa.js → chunk-eh66m9ar.js} +1 -1
- package/dist/{chunk-604qr43v.js → chunk-esq6ydx5.js} +1 -1
- package/dist/chunk-fh33afkv.js +2 -0
- package/dist/{chunk-msmhta0w.js → chunk-fs5gwtd9.js} +1 -1
- package/dist/{chunk-7c1qq9zq.js → chunk-g38wktfx.js} +1 -1
- package/dist/chunk-g5v7gw13.js +2 -0
- package/dist/{chunk-4hk5ewgp.js → chunk-gnk0xd8n.js} +1 -1
- package/dist/{chunk-7yzyn9k7.js → chunk-gyrf55m1.js} +1 -1
- package/dist/chunk-hg77c5m2.js +2 -0
- package/dist/{chunk-yzb20ane.js → chunk-hgc3n1xq.js} +1 -1
- package/dist/chunk-hhjrtjc9.js +3 -0
- package/dist/chunk-hmrv7qv5.js +2 -0
- package/dist/{chunk-egr5663e.js → chunk-hrd56xw7.js} +3 -3
- package/dist/{chunk-gcavh7hk.js → chunk-hrrynmne.js} +1 -1
- package/dist/{chunk-wkcnyv6m.js → chunk-j8bwgnz5.js} +2 -2
- package/dist/{chunk-ycgtkfbm.js → chunk-jgfkmkpb.js} +1 -1
- package/dist/{chunk-xcsf7my7.js → chunk-jtaxnnq3.js} +1 -1
- package/dist/chunk-jxx9apw6.js +2 -0
- package/dist/{chunk-s2kxa1tb.js → chunk-kncbae57.js} +1 -1
- package/dist/{chunk-8q8gj45z.js → chunk-krvreaxb.js} +1 -1
- package/dist/chunk-m1n5a725.js +2 -0
- package/dist/{chunk-zr1r73p3.js → chunk-mgd0vre2.js} +1 -1
- package/dist/{chunk-s3pvp8qv.js → chunk-mjbrbnv2.js} +1 -1
- package/dist/{chunk-n43zq50e.js → chunk-mmhdgz5x.js} +1 -1
- package/dist/{chunk-jd9nv63q.js → chunk-mnhwgk4x.js} +1 -1
- package/dist/{chunk-w6ncyp18.js → chunk-n3qsg135.js} +1 -1
- package/dist/{chunk-szkq9s8n.js → chunk-nn17da2e.js} +1 -1
- package/dist/{chunk-b8cteeha.js → chunk-pavfpmwj.js} +1 -1
- package/dist/chunk-pn1syk7x.js +2 -0
- package/dist/{chunk-f044qmn3.js → chunk-q5hwa8dn.js} +1 -1
- package/dist/chunk-qqvwfhd5.js +2 -0
- package/dist/{chunk-ka5wtqmw.js → chunk-qz462c22.js} +1 -1
- package/dist/{chunk-snmtft92.js → chunk-rpnjwpw3.js} +1 -1
- package/dist/{chunk-wb24hk90.js → chunk-rwq2qzpx.js} +1 -1
- package/dist/{chunk-wwghzbbg.js → chunk-rypa8b99.js} +1 -1
- package/dist/{chunk-ry1key0g.js → chunk-sb2g9f73.js} +1 -1
- package/dist/{chunk-9ebfmdyb.js → chunk-sqkz8tf3.js} +1 -1
- package/dist/{chunk-ttny9g8k.js → chunk-sr042pkc.js} +1 -1
- package/dist/chunk-ssdzdsm1.js +2 -0
- package/dist/{chunk-3by4c2g9.js → chunk-tbw7qn8b.js} +1 -1
- package/dist/{chunk-jdcn0ms1.js → chunk-tk459ykz.js} +2 -2
- package/dist/chunk-tv2qdq7h.js +2 -0
- package/dist/{chunk-5g39e9ra.js → chunk-twdvqqft.js} +1 -1
- package/dist/{chunk-jg2gbd58.js → chunk-vmjktkm9.js} +1 -1
- package/dist/{chunk-bbq82jww.js → chunk-w913decg.js} +2 -2
- package/dist/chunk-wn9z19wm.js +2 -0
- package/dist/{chunk-5qseeh5t.js → chunk-wr011j4b.js} +1 -1
- package/dist/{chunk-ksqba0cq.js → chunk-wtdkz7wz.js} +1 -1
- package/dist/{chunk-tph7b269.js → chunk-x2j5b308.js} +1 -1
- package/dist/{chunk-tzhcjtkr.js → chunk-x7eb8e98.js} +1 -1
- package/dist/chunk-xaeamzng.js +2 -0
- package/dist/chunk-xc5swjjg.js +2 -0
- package/dist/{chunk-gpesxpwq.js → chunk-xnj5h0bq.js} +2 -2
- package/dist/{chunk-zdzd2jb4.js → chunk-ycmsckjw.js} +1 -1
- package/dist/{chunk-a50hb40e.js → chunk-yhebk7kd.js} +1 -1
- package/dist/{chunk-nnv8wytm.js → chunk-ymfh9wan.js} +1 -1
- package/dist/{chunk-at84gyvf.js → chunk-z698hwht.js} +1 -1
- package/dist/{chunk-64ttktzc.js → chunk-zeqktcby.js} +1 -1
- package/dist/{chunk-aqrp68m6.js → chunk-zsapb653.js} +1 -1
- package/dist/cli.js +14 -14
- package/dist/craft-entry.js +1 -1
- package/dist/craft.js +1 -1
- package/dist/database.js +1 -1
- package/dist/first-script-tag.d.ts +24 -0
- package/dist/first-script-tag.js +44 -0
- package/dist/includes.d.ts +2 -0
- package/dist/includes.js +12 -4
- package/dist/loops.d.ts +15 -1
- package/dist/loops.js +18 -4
- package/dist/process.js +4 -29
- package/dist/pwa.js +2 -2
- package/dist/runtime-injection.js +2 -1
- package/dist/ssg.js +2 -2
- package/dist/visual-testing.js +1 -1
- package/package.json +6 -6
- package/dist/chunk-0ggq64sc.js +0 -2
- package/dist/chunk-1ppaw4xs.js +0 -2
- package/dist/chunk-455m2k1y.js +0 -2
- package/dist/chunk-65hqene1.js +0 -2
- package/dist/chunk-6vt9ddra.js +0 -2
- package/dist/chunk-6xmx6stb.js +0 -2
- package/dist/chunk-8618n28z.js +0 -2
- package/dist/chunk-8avktqwz.js +0 -2
- package/dist/chunk-8z11nkyk.js +0 -2
- package/dist/chunk-95jjdgmb.js +0 -2
- package/dist/chunk-9aw5d4rr.js +0 -2
- package/dist/chunk-9g14542g.js +0 -2
- package/dist/chunk-9h4fkwtj.js +0 -2
- package/dist/chunk-bxvqqejm.js +0 -2
- package/dist/chunk-bzmxbz48.js +0 -2
- package/dist/chunk-f9qrz82p.js +0 -2
- package/dist/chunk-g8vf2fc7.js +0 -2
- package/dist/chunk-h63vszd3.js +0 -2
- package/dist/chunk-h78pksyp.js +0 -2
- package/dist/chunk-hxf6zg80.js +0 -2
- package/dist/chunk-jr79tvvs.js +0 -2
- package/dist/chunk-jwnbwemq.js +0 -3
- package/dist/chunk-mvj75wef.js +0 -2
- package/dist/chunk-n0t2at1c.js +0 -2
- package/dist/chunk-spzbfqjn.js +0 -3759
- package/dist/chunk-v1j4myd8.js +0 -2
- package/dist/chunk-v33qvj8y.js +0 -2
- package/dist/chunk-vnh668fb.js +0 -2
- package/dist/chunk-vpbw6g2t.js +0 -2
- package/dist/chunk-w33gx25k.js +0 -2
- package/dist/chunk-w3dfvxar.js +0 -2
- package/dist/chunk-wcp0dt2c.js +0 -2
- package/dist/chunk-z82sc99z.js +0 -2
package/dist/process.js
CHANGED
|
@@ -2,6 +2,7 @@ import fs from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { injectCss } from "./dev-server/ts-css.js";
|
|
4
4
|
import { findBodyOpenTag, replaceBodyOpenTag } from "./find-body-tag.js";
|
|
5
|
+
import { findFirstScriptTag } from "./first-script-tag.js";
|
|
5
6
|
import { matchHtmlComment, matchStyleElement, maskAtElementPosition, stashScriptElements } from "./html-masking.js";
|
|
6
7
|
import { processA11yDirectives } from "./a11y.js";
|
|
7
8
|
import { generateLifecycleRuntime } from "./composables.js";
|
|
@@ -27,7 +28,7 @@ import { processBasicFormDirectives, processErrorDirective, processFormInputDire
|
|
|
27
28
|
import { processTranslateDirective } from "./i18n.js";
|
|
28
29
|
import { processIncludes, processStackPushDirectives, processStackReplacements } from "./includes.js";
|
|
29
30
|
import { processJsDirectives, processTsDirectives } from "./js-ts.js";
|
|
30
|
-
import { processLoops } from "./loops.js";
|
|
31
|
+
import { processLoops, reportDeferredLoopWarnings } from "./loops.js";
|
|
31
32
|
import { processMarkdownDirectives } from "./markdown.js";
|
|
32
33
|
import { processMethodDirectives } from "./method-spoofing.js";
|
|
33
34
|
import { runPostProcessingMiddleware, runPreProcessingMiddleware } from "./middleware.js";
|
|
@@ -216,33 +217,6 @@ function findScriptBlockByAttribute(html, attribute) {
|
|
|
216
217
|
end: closeEnd + 1
|
|
217
218
|
};
|
|
218
219
|
}
|
|
219
|
-
const STYLE_OPEN_TAG = /<style\b[^>]*>/iy, STYLE_CLOSE_TAG = /<\/style>/gi, SCRIPT_OPEN_TAG = /<script\b[^>]*>/iy;
|
|
220
|
-
function findFirstScriptTag(html) {
|
|
221
|
-
let searchFrom = 0;
|
|
222
|
-
while (searchFrom < html.length) {
|
|
223
|
-
const tagStart = html.indexOf("<", searchFrom);
|
|
224
|
-
if (tagStart === -1)
|
|
225
|
-
return -1;
|
|
226
|
-
if (html.startsWith("<!--", tagStart)) {
|
|
227
|
-
const commentEnd = html.indexOf("-->", tagStart + 4);
|
|
228
|
-
searchFrom = commentEnd === -1 ? html.length : commentEnd + 3;
|
|
229
|
-
continue;
|
|
230
|
-
}
|
|
231
|
-
STYLE_OPEN_TAG.lastIndex = tagStart;
|
|
232
|
-
const styleTag = STYLE_OPEN_TAG.exec(html);
|
|
233
|
-
if (styleTag) {
|
|
234
|
-
STYLE_CLOSE_TAG.lastIndex = tagStart + styleTag[0].length;
|
|
235
|
-
const styleEnd = STYLE_CLOSE_TAG.exec(html);
|
|
236
|
-
searchFrom = styleEnd === null ? html.length : styleEnd.index + 8;
|
|
237
|
-
continue;
|
|
238
|
-
}
|
|
239
|
-
SCRIPT_OPEN_TAG.lastIndex = tagStart;
|
|
240
|
-
if (SCRIPT_OPEN_TAG.test(html))
|
|
241
|
-
return tagStart;
|
|
242
|
-
searchFrom = tagStart + 1;
|
|
243
|
-
}
|
|
244
|
-
return -1;
|
|
245
|
-
}
|
|
246
220
|
async function buildModulesTag(sources, options) {
|
|
247
221
|
try {
|
|
248
222
|
const { registeredModuleIdsIn, buildModuleRegistryScript } = await importOnce("stx/client-module-registry", () => import("./client-module-registry.js")), code = await buildModuleRegistryScript(registeredModuleIdsIn(...sources), {
|
|
@@ -707,7 +681,7 @@ async function processOtherDirectives(template, context, filePath, options, depe
|
|
|
707
681
|
output = preEvalLiteralReactiveIfs(output);
|
|
708
682
|
const { processStreamDirectives } = await importOnce("stx/streaming", () => import("./streaming.js"));
|
|
709
683
|
output = processStreamDirectives(output, context);
|
|
710
|
-
output = processLoops(output, context, filePath, opts);
|
|
684
|
+
output = processLoops(output, context, filePath, opts, !0);
|
|
711
685
|
output = await processDynamicComponents(output, context, filePath, opts, dependencies);
|
|
712
686
|
output = await processComponents(output, context, filePath, opts, dependencies);
|
|
713
687
|
output = processAnimationDirectives(output, context, filePath, opts);
|
|
@@ -759,6 +733,7 @@ async function processOtherDirectives(template, context, filePath, options, depe
|
|
|
759
733
|
output = output.replace(/@push\s*\(\s*['"][^'"]+['"]\s*\)[\s\S]*?@endpush/g, "");
|
|
760
734
|
output = processRefAttributes(output);
|
|
761
735
|
output = processConditionals(output, context, filePath);
|
|
736
|
+
output = reportDeferredLoopWarnings(output);
|
|
762
737
|
output = processStatusDirective(output, context, { filePath, buildMode: opts.buildMode });
|
|
763
738
|
output = processIssetEmptyDirectives(output, context);
|
|
764
739
|
output = processEnvDirective(output, context);
|
package/dist/pwa.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ok as wq,Pk as dq,Qk as Cq,Rk as mq,Sk as gq}from"./chunk-m3a20mmb.js";import{$k as w,Tk as S,Uk as Tq,Vk as _q,Wk as z,Xk as D,Yk as P,Zk as kq,_k as vq,al as Iq,bl as d,cl as Hq,dl as Oq,el as Mq}from"./chunk-
|
|
3
|
-
Icon generation requires the sharp package for image processing.`),q.success=!1,q}let R=await y.default(Y).metadata();if(R.width&&R.width<512)q.warnings.push(`Source icon is ${R.width}x${R.height}. Recommend using at least 512x512 for best quality.`);for(let $ of X){let x=L.join(Q,`icon-${$}x${$}.png`);if(await y.default(Y).resize($,$,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).png().toFile(x),q.generatedFiles.push(x),j){let F=L.join(Q,`icon-${$}x${$}.webp`);await y.default(Y).resize($,$,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:90}).toFile(F),q.generatedFiles.push(F)}}if(J){for(let x of v){let F=L.join(Q,`apple-touch-icon-${x}x${x}.png`);await y.default(Y).resize(x,x,{fit:"contain",background:{r:255,g:255,b:255,alpha:1}}).png().toFile(F),q.generatedFiles.push(F)}let $=L.join(Q,"apple-touch-icon.png");await y.default(Y).resize(180,180,{fit:"contain",background:{r:255,g:255,b:255,alpha:1}}).png().toFile($),q.generatedFiles.push($)}for(let $ of I){let x=L.join(Q,`favicon-${$}x${$}.png`);await y.default(Y).resize($,$,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).png().toFile(x),q.generatedFiles.push(x)}let U=512,T=L.join(Q,`icon-maskable-${U}x${U}.png`),Z=Math.floor(U*0.1),_=U-Z*2;await y.default(Y).resize(_,_,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).extend({top:Z,bottom:Z,left:Z,right:Z,background:{r:255,g:255,b:255,alpha:1}}).png().toFile(T),q.generatedFiles.push(T)}catch(y){let V=y instanceof Error?y.message:String(y);q.errors.push(`Icon generation failed: ${V}`),q.success=!1}return q}function n(G){let B=G.sizes||k,q=G.outputDir?`/${G.outputDir}`:"/pwa-icons",K=G.generateWebP??!0,Y=G.generateAppleIcons??!0,Q=[];for(let X of B)if(Q.push(`${q}/icon-${X}x${X}.png`),K)Q.push(`${q}/icon-${X}x${X}.webp`);if(Y){Q.push(`${q}/apple-touch-icon.png`);for(let X of v)Q.push(`${q}/apple-touch-icon-${X}x${X}.png`)}for(let X of I)Q.push(`${q}/favicon-${X}x${X}.png`);return Q.push(`${q}/icon-maskable-512x512.png`),Q}async function O(){try{return await import("sharp"),!0}catch{return!1}}function m(G,B,q,K){let Y=[],Q=K.join(" ");for(let X of G)if(Y.push({src:`${B}/icon-${X}x${X}.png`,sizes:`${X}x${X}`,type:"image/png",purpose:Q}),q)Y.push({src:`${B}/icon-${X}x${X}.webp`,sizes:`${X}x${X}`,type:"image/webp",purpose:Q});return Y}function g(G){return G.map((B)=>({name:B.name,short_name:B.shortName,description:B.description,url:B.url,icons:B.icons?.map((q)=>({src:q.src,sizes:q.sizes,type:q.type}))}))}function h(G){let B=G.pwa?.shareTarget;if(!B?.enabled)return;let q={action:B.action||"/share",method:B.method||"POST",enctype:B.enctype||"multipart/form-data",params:{title:B.params?.title||"title",text:B.params?.text||"text",url:B.params?.url||"url"}};if(B.acceptFiles&&B.acceptFiles.length>0)q.params.files=B.acceptFiles.map((K)=>({name:K.name,accept:K.accept}));return q}function c(G){let B=G.pwa?.fileHandlers;if(!B?.enabled||!B.accept)return;let q=[{action:B.action||"/",accept:B.accept,launch_type:B.launchType||"single-client"}];if(B.icons)q[0].icons=B.icons.map((K)=>({src:K.src,sizes:K.sizes,type:K.type}));return q}function l(G){let B=G.pwa?.protocolHandlers;if(!B||B.length===0)return;return B.map((q)=>({protocol:q.protocol,url:q.url}))}function u(G){let B=G.pwa;if(!B?.enabled||!B.manifest)return null;let{manifest:q,icons:K}=B,Y=K?.sizes||[72,96,128,144,152,192,384,512],Q=K?.outputDir?`/${K.outputDir}`:"/pwa-icons",X=K?.generateWebP??!0,j=K?.purpose||["any","maskable"],J={name:q.name,short_name:q.shortName||q.name,description:q.description,start_url:q.startUrl||"/",display:q.display||"standalone",display_override:q.displayOverride,orientation:q.orientation,theme_color:q.themeColor,background_color:q.backgroundColor,scope:q.scope||"/",lang:q.lang,dir:q.dir,id:q.id,categories:q.categories,icons:m(Y,Q,X,j)};if(q.shortcuts&&q.shortcuts.length>0)J.shortcuts=g(q.shortcuts);if(q.screenshots&&q.screenshots.length>0)J.screenshots=q.screenshots.map((U)=>({src:U.src,sizes:U.sizes,type:U.type,label:U.label,form_factor:U.platform}));let y=h(G);if(y)J.share_target=y;let V=c(G);if(V)J.file_handlers=V;let R=l(G);if(R)J.protocol_handlers=R;if(q.launchHandler)J.launch_handler={client_mode:q.launchHandler};if(q.handleLinks)J.handle_links=q.handleLinks;if(q.edgeSidePanel?.enabled)J.edge_side_panel={preferred_width:q.edgeSidePanel.preferredWidth};return J}function M(G){let B=u(G);if(!B)return"";let q=JSON.parse(JSON.stringify(B));return JSON.stringify(q,null,2)}function i(G,B){return{...B,...G,shortcuts:G.shortcuts||B.shortcuts,screenshots:G.screenshots||B.screenshots,categories:G.categories||B.categories}}function s(G){let B=[],q=G.pwa;if(!q?.enabled)return B;let K=q.manifest;if(!K)return B.push("PWA manifest configuration is missing"),B;if(!K.name)B.push("Manifest name is required");let Y=["fullscreen","standalone","minimal-ui","browser"];if(K.display&&!Y.includes(K.display))B.push(`Invalid display mode: ${K.display}. Must be one of: ${Y.join(", ")}`);let Q=["any","natural","landscape","landscape-primary","landscape-secondary","portrait","portrait-primary","portrait-secondary"];if(K.orientation&&!Q.includes(K.orientation))B.push(`Invalid orientation: ${K.orientation}`);let X=/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;if(K.themeColor&&!X.test(K.themeColor))B.push(`Invalid theme color: ${K.themeColor}. Must be a valid hex color.`);if(K.backgroundColor&&!X.test(K.backgroundColor))B.push(`Invalid background color: ${K.backgroundColor}. Must be a valid hex color.`);if(q.shareTarget?.enabled){if(!q.shareTarget.action)B.push("Share target action URL is required")}if(q.fileHandlers?.enabled){if(!q.fileHandlers.accept||Object.keys(q.fileHandlers.accept).length===0)B.push("File handlers must specify accepted MIME types")}if(q.protocolHandlers)for(let j of q.protocolHandlers){if(!j.protocol)B.push("Protocol handler missing protocol");if(!j.url||!j.url.includes("%s"))B.push(`Protocol handler URL must contain %s placeholder: ${j.protocol}`)}return B}import A from"path";async function b(G){let B=G.pwa?.offline;if(!B?.enabled)return"";if(B.page){let q=A.isAbsolute(B.page)?B.page:A.resolve(process.cwd(),B.page);if(await Bun.file(q).exists())try{let{processDirectives:K}=await import("./chunk-
|
|
2
|
+
import{Ok as wq,Pk as dq,Qk as Cq,Rk as mq,Sk as gq}from"./chunk-m3a20mmb.js";import{$k as w,Tk as S,Uk as Tq,Vk as _q,Wk as z,Xk as D,Yk as P,Zk as kq,_k as vq,al as Iq,bl as d,cl as Hq,dl as Oq,el as Mq}from"./chunk-3ntb5zkk.js";import{aw as Aq,bw as bq,cw as Sq,dw as zq,ew as Dq,fw as Pq}from"./chunk-sqkz8tf3.js";import{jw as N}from"./chunk-cey6rhqw.js";import p from"fs";import E from"path";import C from"fs";import L from"path";var k=[72,96,128,144,152,192,384,512],v=[120,152,167,180],I=[16,32];async function H(G,B){let q={success:!0,generatedFiles:[],errors:[],warnings:[]},K=G.pwa?.icons;if(!K?.src)return q.errors.push("No source icon specified in pwa.icons.src"),q.success=!1,q;let Y=L.isAbsolute(K.src)?K.src:L.resolve(process.cwd(),K.src);if(!await Bun.file(Y).exists())return q.errors.push(`Source icon not found: ${Y}`),q.success=!1,q;let Q=L.resolve(B,K.outputDir||"pwa-icons");try{C.mkdirSync(Q,{recursive:!0})}catch{return q.errors.push(`Failed to create output directory: ${Q}`),q.success=!1,q}let X=K.sizes||k,j=K.generateWebP??!0,J=K.generateAppleIcons??!0;try{let y;try{y=await import("sharp")}catch{return q.errors.push(`sharp is not installed. Install it with: bun add sharp
|
|
3
|
+
Icon generation requires the sharp package for image processing.`),q.success=!1,q}let R=await y.default(Y).metadata();if(R.width&&R.width<512)q.warnings.push(`Source icon is ${R.width}x${R.height}. Recommend using at least 512x512 for best quality.`);for(let $ of X){let x=L.join(Q,`icon-${$}x${$}.png`);if(await y.default(Y).resize($,$,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).png().toFile(x),q.generatedFiles.push(x),j){let F=L.join(Q,`icon-${$}x${$}.webp`);await y.default(Y).resize($,$,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).webp({quality:90}).toFile(F),q.generatedFiles.push(F)}}if(J){for(let x of v){let F=L.join(Q,`apple-touch-icon-${x}x${x}.png`);await y.default(Y).resize(x,x,{fit:"contain",background:{r:255,g:255,b:255,alpha:1}}).png().toFile(F),q.generatedFiles.push(F)}let $=L.join(Q,"apple-touch-icon.png");await y.default(Y).resize(180,180,{fit:"contain",background:{r:255,g:255,b:255,alpha:1}}).png().toFile($),q.generatedFiles.push($)}for(let $ of I){let x=L.join(Q,`favicon-${$}x${$}.png`);await y.default(Y).resize($,$,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).png().toFile(x),q.generatedFiles.push(x)}let U=512,T=L.join(Q,`icon-maskable-${U}x${U}.png`),Z=Math.floor(U*0.1),_=U-Z*2;await y.default(Y).resize(_,_,{fit:"contain",background:{r:0,g:0,b:0,alpha:0}}).extend({top:Z,bottom:Z,left:Z,right:Z,background:{r:255,g:255,b:255,alpha:1}}).png().toFile(T),q.generatedFiles.push(T)}catch(y){let V=y instanceof Error?y.message:String(y);q.errors.push(`Icon generation failed: ${V}`),q.success=!1}return q}function n(G){let B=G.sizes||k,q=G.outputDir?`/${G.outputDir}`:"/pwa-icons",K=G.generateWebP??!0,Y=G.generateAppleIcons??!0,Q=[];for(let X of B)if(Q.push(`${q}/icon-${X}x${X}.png`),K)Q.push(`${q}/icon-${X}x${X}.webp`);if(Y){Q.push(`${q}/apple-touch-icon.png`);for(let X of v)Q.push(`${q}/apple-touch-icon-${X}x${X}.png`)}for(let X of I)Q.push(`${q}/favicon-${X}x${X}.png`);return Q.push(`${q}/icon-maskable-512x512.png`),Q}async function O(){try{return await import("sharp"),!0}catch{return!1}}function m(G,B,q,K){let Y=[],Q=K.join(" ");for(let X of G)if(Y.push({src:`${B}/icon-${X}x${X}.png`,sizes:`${X}x${X}`,type:"image/png",purpose:Q}),q)Y.push({src:`${B}/icon-${X}x${X}.webp`,sizes:`${X}x${X}`,type:"image/webp",purpose:Q});return Y}function g(G){return G.map((B)=>({name:B.name,short_name:B.shortName,description:B.description,url:B.url,icons:B.icons?.map((q)=>({src:q.src,sizes:q.sizes,type:q.type}))}))}function h(G){let B=G.pwa?.shareTarget;if(!B?.enabled)return;let q={action:B.action||"/share",method:B.method||"POST",enctype:B.enctype||"multipart/form-data",params:{title:B.params?.title||"title",text:B.params?.text||"text",url:B.params?.url||"url"}};if(B.acceptFiles&&B.acceptFiles.length>0)q.params.files=B.acceptFiles.map((K)=>({name:K.name,accept:K.accept}));return q}function c(G){let B=G.pwa?.fileHandlers;if(!B?.enabled||!B.accept)return;let q=[{action:B.action||"/",accept:B.accept,launch_type:B.launchType||"single-client"}];if(B.icons)q[0].icons=B.icons.map((K)=>({src:K.src,sizes:K.sizes,type:K.type}));return q}function l(G){let B=G.pwa?.protocolHandlers;if(!B||B.length===0)return;return B.map((q)=>({protocol:q.protocol,url:q.url}))}function u(G){let B=G.pwa;if(!B?.enabled||!B.manifest)return null;let{manifest:q,icons:K}=B,Y=K?.sizes||[72,96,128,144,152,192,384,512],Q=K?.outputDir?`/${K.outputDir}`:"/pwa-icons",X=K?.generateWebP??!0,j=K?.purpose||["any","maskable"],J={name:q.name,short_name:q.shortName||q.name,description:q.description,start_url:q.startUrl||"/",display:q.display||"standalone",display_override:q.displayOverride,orientation:q.orientation,theme_color:q.themeColor,background_color:q.backgroundColor,scope:q.scope||"/",lang:q.lang,dir:q.dir,id:q.id,categories:q.categories,icons:m(Y,Q,X,j)};if(q.shortcuts&&q.shortcuts.length>0)J.shortcuts=g(q.shortcuts);if(q.screenshots&&q.screenshots.length>0)J.screenshots=q.screenshots.map((U)=>({src:U.src,sizes:U.sizes,type:U.type,label:U.label,form_factor:U.platform}));let y=h(G);if(y)J.share_target=y;let V=c(G);if(V)J.file_handlers=V;let R=l(G);if(R)J.protocol_handlers=R;if(q.launchHandler)J.launch_handler={client_mode:q.launchHandler};if(q.handleLinks)J.handle_links=q.handleLinks;if(q.edgeSidePanel?.enabled)J.edge_side_panel={preferred_width:q.edgeSidePanel.preferredWidth};return J}function M(G){let B=u(G);if(!B)return"";let q=JSON.parse(JSON.stringify(B));return JSON.stringify(q,null,2)}function i(G,B){return{...B,...G,shortcuts:G.shortcuts||B.shortcuts,screenshots:G.screenshots||B.screenshots,categories:G.categories||B.categories}}function s(G){let B=[],q=G.pwa;if(!q?.enabled)return B;let K=q.manifest;if(!K)return B.push("PWA manifest configuration is missing"),B;if(!K.name)B.push("Manifest name is required");let Y=["fullscreen","standalone","minimal-ui","browser"];if(K.display&&!Y.includes(K.display))B.push(`Invalid display mode: ${K.display}. Must be one of: ${Y.join(", ")}`);let Q=["any","natural","landscape","landscape-primary","landscape-secondary","portrait","portrait-primary","portrait-secondary"];if(K.orientation&&!Q.includes(K.orientation))B.push(`Invalid orientation: ${K.orientation}`);let X=/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;if(K.themeColor&&!X.test(K.themeColor))B.push(`Invalid theme color: ${K.themeColor}. Must be a valid hex color.`);if(K.backgroundColor&&!X.test(K.backgroundColor))B.push(`Invalid background color: ${K.backgroundColor}. Must be a valid hex color.`);if(q.shareTarget?.enabled){if(!q.shareTarget.action)B.push("Share target action URL is required")}if(q.fileHandlers?.enabled){if(!q.fileHandlers.accept||Object.keys(q.fileHandlers.accept).length===0)B.push("File handlers must specify accepted MIME types")}if(q.protocolHandlers)for(let j of q.protocolHandlers){if(!j.protocol)B.push("Protocol handler missing protocol");if(!j.url||!j.url.includes("%s"))B.push(`Protocol handler URL must contain %s placeholder: ${j.protocol}`)}return B}import A from"path";async function b(G){let B=G.pwa?.offline;if(!B?.enabled)return"";if(B.page){let q=A.isAbsolute(B.page)?B.page:A.resolve(process.cwd(),B.page);if(await Bun.file(q).exists())try{let{processDirectives:K}=await import("./chunk-5sz2tmw3.js"),Y=await Bun.file(q).text();return await K(Y,{},q,G,new Set)}catch(K){console.warn(`[PWA] Failed to process custom offline page: ${K}`)}else console.warn(`[PWA] Custom offline page not found: ${q}`)}return f(G)}function f(G){let B=G.pwa?.offline,q=G.pwa?.manifest,K=B?.fallbackTitle||"You are offline",Y=B?.fallbackMessage||"Please check your internet connection and try again.",Q=q?.themeColor||"#4f46e5",X=q?.shortName||q?.name||"App";return`<!DOCTYPE html>
|
|
4
4
|
<html lang="en">
|
|
5
5
|
<head>
|
|
6
6
|
<meta charset="UTF-8">
|
|
@@ -3,6 +3,7 @@ import { BROWSER_CORE_IMPORTS } from "./browser-core-imports.js";
|
|
|
3
3
|
import { getOwnedRouteMatchers } from "./owned-routes.js";
|
|
4
4
|
import { toScriptJson } from "./script-json.js";
|
|
5
5
|
import { findBodyOpenTag, replaceBodyOpenTag } from "./find-body-tag.js";
|
|
6
|
+
import { findFirstScriptTag } from "./first-script-tag.js";
|
|
6
7
|
import { getTooltipRuntime } from "./builtins/tooltip.js";
|
|
7
8
|
export function injectBrowserRuntime(template) {
|
|
8
9
|
const alreadyBootstrapped = /import\s+['"]@stacksjs\/browser['"]/.test(template), pageSuppliesGlobal = /\bStacksBrowser\s*=[^=]/.test(template);
|
|
@@ -62,7 +63,7 @@ export function outputNeedsSignalsRuntime(html) {
|
|
|
62
63
|
return !1;
|
|
63
64
|
}
|
|
64
65
|
function placeRuntimeTag(template, runtimeScript) {
|
|
65
|
-
const firstScript = template
|
|
66
|
+
const firstScript = findFirstScriptTag(template), doctype = template.search(/<!doctype\b/i);
|
|
66
67
|
if (firstScript !== -1 && (doctype === -1 || firstScript > doctype))
|
|
67
68
|
return template.slice(0, firstScript) + runtimeScript + `
|
|
68
69
|
` + template.slice(firstScript);
|
package/dist/ssg.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Fk as Uq,Gk as Iq,Kk as Fq}from"./chunk-
|
|
2
|
+
import{Fk as Uq,Gk as Iq,Kk as Fq}from"./chunk-8mspafdh.js";import{Lk as Eq,Mk as Tq,Nk as Dq}from"./chunk-09zjty4k.js";import{gl as _q,jl as zq,kl as Aq}from"./chunk-kncbae57.js";import"./chunk-8q9qfy2v.js";import{Ar as n,Um as Oq,bq as P,qp as Bq,so as l,vo as Hq}from"./chunk-7kk2jb1j.js";import"./chunk-2btrq8sz.js";import"./chunk-z698hwht.js";import"./chunk-70zb3560.js";import"./chunk-zsapb653.js";import{cu as Xq}from"./chunk-hrd56xw7.js";import"./chunk-hhjrtjc9.js";import"./chunk-sb2g9f73.js";import{tu as d}from"./chunk-1r3ydhkx.js";import"./chunk-j8bwgnz5.js";import"./chunk-5mdvkpt8.js";import"./chunk-zeqktcby.js";import"./chunk-jtaxnnq3.js";import"./chunk-2925bmqr.js";import"./chunk-sr042pkc.js";import{Qv as Yq,Rv as Vq,Sv as jq,Tv as Gq,Uv as Lq,Vv as Nq}from"./chunk-w913decg.js";import"./chunk-sqkz8tf3.js";import{jw as y}from"./chunk-cey6rhqw.js";import O from"fs";import j from"path";import{createHash as xq}from"crypto";function yq(q){try{return new Bun.Transpiler({loader:"js",minifyWhitespace:!0}).transformSync(q).replace(/\}(var |let |const |function )/g,"};$1").trim()}catch{return q}}var Pq=/<script\s+type="stx\/island"\s+data-stx-island="([^"]+)"([^>]*)>([\s\S]*?)<\/script>/g;function Cq(q){return Bun.hash(q).toString(16)}function Qq(q,Z={}){if(!q.includes('type="stx/island"'))return{html:q,chunks:[]};let $=new Map,Q=q.replace(Pq,(J,W,z,A)=>{let G=A.trim();if(!G)return J;if(/\bdata-stx-src=/.test(z))return J;if(Z.minify)G=yq(G);let X=Cq(G);if(!$.has(X))$.set(X,G);let B=Z.integrity?` data-stx-integrity="sha384-${xq("sha384").update(G).digest("base64")}"`:"";return`<script type="stx/island" data-stx-island="${W}" data-stx-src="/_stx/islands/${X}.js"${B}${z}></script>`}),K=Array.from($,([J,W])=>({hash:J,code:W}));return{html:Q,chunks:K}}var gq=new Set(["visible","idle"]);function Zq(q){if(!q.includes("data-stx-src="))return q;let Z=new Map,$=/data-stx-scope="([^"]+)"[^>]*?stx-hydrate="([^"]+)"/g,Q;while((Q=$.exec(q))!==null)Z.set(Q[1],Q[2]);let K=new Set,J=/data-stx-island="([^"]+)"[^>]*?data-stx-src="([^"]+)"/g,W;while((W=J.exec(q))!==null)if(gq.has(Z.get(W[1])||""))K.add(W[2]);let z=q.lastIndexOf("</head>");if(K.size===0||z===-1)return q;let A=Array.from(K).filter((G)=>!q.includes(`rel="prefetch" href="${G}"`)).map((G)=>`<link rel="prefetch" href="${G}" as="script">`).join("");if(!A)return q;return q.slice(0,z)+A+q.slice(z)}var fq=["STX_SITE_URL","SITE_URL","URL","VERCEL_URL","CF_PAGES_URL"];function h(q){let Z=q.trim();if(!Z)return null;let $=/^https?:\/\//i.test(Z)?Z:`https://${Z}`;try{return new URL($).origin+new URL($).pathname.replace(/\/$/,"")}catch{return null}}function mq(q){for(let Z of fq){let $=q[Z];if(!$)continue;let Q=h($);if(Q)return{url:Q,source:"env",via:Z}}return null}function $q(q){if(!q||typeof q!=="object")return null;let Z=q,$=Z.site?.url??Z.url??Z.app?.url;return typeof $==="string"?h($):null}async function dq(q){let{existsSync:Z}=await import("fs"),$=await import("path");for(let Q of["site.config.ts","site.config.js",".config/site.config.ts"]){let K=$.resolve(q,Q);if(!Z(K))continue;try{let J=await import(K),W=$q(J.default??J);if(W)return W}catch{}}return null}async function Kq(q={}){let Z=q.cwd??process.cwd(),$=q.env??process.env;if(q.explicit){let W=h(q.explicit);if(W)return{url:W,source:"option"}}let Q=$q(q.stxConfig);if(Q)return{url:Q,source:"stx.config",via:"site.url"};let K=await dq(Z);if(K)return{url:K,source:"site.config",via:"url"};let J=mq($);if(J)return J;return{url:"http://localhost",source:"fallback"}}function Wq(){return["No site URL configured \u2014 sitemap.xml and robots.txt will point at http://localhost."," Set one in stx.config.ts (site: { url: 'https://example.com' }), in site.config.ts,"," via --domain, or with SITE_URL in the build environment."].join(`
|
|
3
3
|
`)}class wq{cacheDir;cache=new Map;loaded=!1;salt;constructor(q,Z=""){this.cacheDir=q,this.salt=Z}async load(){if(this.loaded)return;let q=j.join(this.cacheDir,"build-cache.json");if(await Bun.file(q).exists())try{let Z=JSON.parse(await Bun.file(q).text());for(let[$,Q]of Object.entries(Z))this.cache.set($,Q)}catch{}this.loaded=!0}async save(){await O.promises.mkdir(this.cacheDir,{recursive:!0});let q=j.join(this.cacheDir,"build-cache.json"),Z={};for(let[$,Q]of this.cache)Z[$]=Q;await Bun.write(q,JSON.stringify(Z))}getHash(q,Z){let $=O.statSync(q),Q=`${this.salt}|${q}:${$.mtimeMs}`;for(let J of Z)if(O.existsSync(J)){let W=O.statSync(J);Q+=`:${J}:${W.mtimeMs}`}let K=0;for(let J=0;J<Q.length;J++){let W=Q.charCodeAt(J);K=(K<<5)-K+W,K=K&K}return Math.abs(K).toString(36)}get(q,Z){let $=this.cache.get(q);if(!$)return null;let Q=this.getHash(Z,$.dependencies??[]);if($.hash!==Q)return this.cache.delete(q),null;return $.html}set(q,Z,$,Q){let K=this.getHash(Z,$);this.cache.set(q,{hash:K,html:Q,generatedAt:Date.now(),dependencies:$})}}class Rq{cacheDir;constructor(q){this.cacheDir=q}getFilePath(q){let Z=q.replace(/[^a-zA-Z0-9]/g,"_")+".json";return j.join(this.cacheDir,"isr",Z)}async get(q){let Z=this.getFilePath(q);if(!await Bun.file(Z).exists())return null;try{return JSON.parse(await Bun.file(Z).text())}catch{return null}}async set(q,Z){let $=this.getFilePath(q);await O.promises.mkdir(j.dirname($),{recursive:!0}),await Bun.write($,JSON.stringify(Z))}async invalidate(q){let Z=this.getFilePath(q);if(await Bun.file(Z).exists())await O.promises.unlink(Z)}async invalidatePattern(q){let Z=j.join(this.cacheDir,"isr");if(!O.existsSync(Z))return;let $=await O.promises.readdir(Z);for(let Q of $){let K=Q.replace(/_/g,"/").replace(".json","");if(q.test(K))await O.promises.unlink(j.join(Z,Q))}}async needsRevalidation(q){let Z=await this.get(q);if(!Z)return!0;return Date.now()>Z.revalidateAfter}}async function pq(q){try{let $=(await Bun.file(q).text()).match(/<script\s+server\b[^>]*>([\s\S]*?)<\/script>/i);if(!$)return null;let Q=$[1];if(!Q.includes("getStaticPaths"))return null;let K=Q.match(/(?:export\s+)?(?:async\s+)?function\s+getStaticPaths\s*\([^)]*\)\s*\{([\s\S]*?)\n[\t ]*\}/);if(!K)return null;return await Function(`
|
|
4
4
|
return (async function getStaticPaths() {
|
|
5
5
|
${K[1]}
|
|
@@ -41,7 +41,7 @@ ${q.map((Q)=>{let K=new URL(Q.loc,Z).href,J=` <url>
|
|
|
41
41
|
${$.join(`
|
|
42
42
|
`)}
|
|
43
43
|
</channel>
|
|
44
|
-
</rss>`}async function aq(q={}){let Z=Date.now();Aq();let $=await n(process.cwd()),Q=$.build||{},K=await Kq({explicit:q.domain||Q.domain,stxConfig:$});if(K.source==="fallback"&&(q.sitemap??Q.sitemap??!0))console.warn(Wq());let J={router:q.router??$?.router??{},pagesDir:q.pagesDir||Q.pagesDir||"pages",outputDir:q.outputDir||Q.outputDir||"dist",baseUrl:q.baseUrl||Q.baseUrl||"/",domain:K.url,revalidate:q.revalidate??Q.revalidate??!1,sitemap:q.sitemap??Q.sitemap??!0,sitemapExclude:q.sitemapExclude||Q.sitemapExclude||[],robots:q.robots??Q.robots??!0,rss:q.rss??Q.rss??!1,concurrency:q.concurrency||Q.concurrency||10,cache:q.cache??Q.cache??!0,cacheDir:q.cacheDir||Q.cacheDir||d(process.cwd(),"ssg-cache"),contentLoaders:q.contentLoaders||[],hooks:q.hooks||{},minify:q.minify??Q.minify??!0,generate404:q.generate404??Q.generate404??!0,publicDir:q.publicDir||Q.publicDir||"public",trailingSlash:q.trailingSlash??Q.trailingSlash??!1,cleanOutput:q.cleanOutput??Q.cleanOutput??!0,cacheSalt:q.cacheSalt??"",partialsDir:q.partialsDir||$?.partialsDir||"",componentsDir:q.componentsDir||$?.componentsDir||"",failOnIncludeError:q.failOnIncludeError??!0,chunkIslands:q.chunkIslands===!0,prefetchIslands:q.prefetchIslands===!0,integrityIslands:q.integrityIslands===!0},W={totalPages:0,successCount:0,failedCount:0,cachedCount:0,buildTime:0,pages:[],errors:[]},z=new Set,A=0,G={},X={};await J.hooks.onBuildStart?.();try{if(J.cleanOutput&&O.existsSync(J.outputDir))await O.promises.rm(J.outputDir,{recursive:!0});await O.promises.mkdir(J.outputDir,{recursive:!0});let L=J.cacheSalt;if(!L){let{resolveUserCssConfig:Y,fingerprintConfig:N}=await import("./chunk-
|
|
44
|
+
</rss>`}async function aq(q={}){let Z=Date.now();Aq();let $=await n(process.cwd()),Q=$.build||{},K=await Kq({explicit:q.domain||Q.domain,stxConfig:$});if(K.source==="fallback"&&(q.sitemap??Q.sitemap??!0))console.warn(Wq());let J={router:q.router??$?.router??{},pagesDir:q.pagesDir||Q.pagesDir||"pages",outputDir:q.outputDir||Q.outputDir||"dist",baseUrl:q.baseUrl||Q.baseUrl||"/",domain:K.url,revalidate:q.revalidate??Q.revalidate??!1,sitemap:q.sitemap??Q.sitemap??!0,sitemapExclude:q.sitemapExclude||Q.sitemapExclude||[],robots:q.robots??Q.robots??!0,rss:q.rss??Q.rss??!1,concurrency:q.concurrency||Q.concurrency||10,cache:q.cache??Q.cache??!0,cacheDir:q.cacheDir||Q.cacheDir||d(process.cwd(),"ssg-cache"),contentLoaders:q.contentLoaders||[],hooks:q.hooks||{},minify:q.minify??Q.minify??!0,generate404:q.generate404??Q.generate404??!0,publicDir:q.publicDir||Q.publicDir||"public",trailingSlash:q.trailingSlash??Q.trailingSlash??!1,cleanOutput:q.cleanOutput??Q.cleanOutput??!0,cacheSalt:q.cacheSalt??"",partialsDir:q.partialsDir||$?.partialsDir||"",componentsDir:q.componentsDir||$?.componentsDir||"",failOnIncludeError:q.failOnIncludeError??!0,chunkIslands:q.chunkIslands===!0,prefetchIslands:q.prefetchIslands===!0,integrityIslands:q.integrityIslands===!0},W={totalPages:0,successCount:0,failedCount:0,cachedCount:0,buildTime:0,pages:[],errors:[]},z=new Set,A=0,G={},X={};await J.hooks.onBuildStart?.();try{if(J.cleanOutput&&O.existsSync(J.outputDir))await O.promises.rm(J.outputDir,{recursive:!0});await O.promises.mkdir(J.outputDir,{recursive:!0});let L=J.cacheSalt;if(!L){let{resolveUserCssConfig:Y,fingerprintConfig:N}=await import("./chunk-4kp87md5.js");try{L=N(await Y(process.cwd()))}catch{}}let{prepareImageDelivery:_}=await import("./chunk-pn1syk7x.js"),F=await _(J.publicDir,J.outputDir);if(F.count>0)console.log(`Optimized ${F.count} image(s) for responsive delivery`),L=[L,F.fingerprint].filter(Boolean).join(":");let C=new wq(J.cacheDir,L);if(J.cache)await C.load();try{let{generateCss:Y}=await import("./chunk-4kp87md5.js");await Y('<div class="bg-black"></div>')}catch{}Yq();let kq=$?.routeMiddleware?.dir||"middleware";await jq(process.cwd(),kq);let p=Vq();if(p.length>0)console.log(`Loaded ${p.length} middleware: ${p.join(", ")}`);let bq=$?.routeMiddleware?.global||[];Fq($?.layoutsDir,d(process.cwd()));let i=l(".",{pagesDir:J.pagesDir,pagesDirs:$?._layerPageDirs});console.log(`Found ${i.length} routes`);let g=[];for(let Y of i){let N=await uq(Y);for(let H of N)g.push({route:Y,url:H.url,params:H.params,props:H.props,revalidate:H.revalidate??J.revalidate})}W.totalPages=g.length,console.log(`Generating ${W.totalPages} pages...`);let b=[],s=[];for(let Y=0;Y<g.length;Y+=J.concurrency)s.push(g.slice(Y,Y+J.concurrency));for(let Y of s)await Promise.all(Y.map(async(N)=>{let{route:H,url:V,params:S,props:Sq,revalidate:a}=N;try{await J.hooks.onPageStart?.(V);let w=await Bun.file(H.filePath).text(),R=JJ(w),vq=R?.middleware?Array.isArray(R.middleware)?R.middleware:[R.middleware]:[],t=[...bq,...vq];if(t.length>0){let D=Gq(V,S,R||{}),M=Lq(D,null,void 0,{isServer:!0}),E=await Nq(t,M);if(E.redirect){let U=typeof E.redirect==="string"?E.redirect:E.redirect.path||E.redirect,x=QJ(String(U),V),k=ZJ(V,J);await O.promises.mkdir(j.dirname(k),{recursive:!0}),await Bun.write(k,x),W.successCount++,W.pages.push({route:V,outputPath:k,size:Buffer.byteLength(x),cached:!1}),b.push({loc:V,lastmod:new Date().toISOString()}),console.log(` \u21B3 ${V} \u2192 redirect to ${U}`);return}if(E.abort){let U=typeof E.abort==="string"?E.abort:E.abort?.error?.message||"aborted";console.warn(` \u21B3 ${V} \u2014 middleware aborted: ${U}`);return}}let e=w.match(/definePageMeta\s*\(\s*\{[\s\S]*?validate\s*:\s*((?:\([^)]*\)|[^,}])*(?:\{[\s\S]*?\})?)/m);if(e)try{if(!await Function("route",`
|
|
45
45
|
const validate = ${e[1]};
|
|
46
46
|
return validate(route);
|
|
47
47
|
`)({params:S})){console.warn(`Validation failed for ${V}, skipping...`);return}}catch{}let I=null,qq=!1;if(J.cache){if(I=C.get(V,H.filePath),I)qq=!0,W.cachedCount++}if(!I){let D=await Mq(H,S,Sq,J,$);if(I=D.html,J.failOnIncludeError&&D.includeFailures.length>0)throw Error(`${D.includeFailures.length} include(s) failed to resolve, so this page would have shipped with an error banner where the markup should be:
|
package/dist/visual-testing.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"./chunk-
|
|
2
|
+
import"./chunk-cey6rhqw.js";import B from"fs";import $ from"path";import k from"crypto";var V=[{name:"mobile",width:375,height:667,isMobile:!0,hasTouch:!0},{name:"tablet",width:768,height:1024,isMobile:!0,hasTouch:!0},{name:"desktop",width:1280,height:800,isMobile:!1,hasTouch:!1},{name:"wide",width:1920,height:1080,isMobile:!1,hasTouch:!1}];function J(N={}){let Y={snapshotDir:N.snapshotDir||"__snapshots__",screenshotDir:N.screenshotDir||"__screenshots__",updateSnapshots:N.updateSnapshots||process.env.UPDATE_SNAPSHOTS==="true",threshold:N.threshold??0.01,viewports:N.viewports||V,generateDiff:N.generateDiff??!0,diffDir:N.diffDir||"__diffs__",compare:N.compare||b,ci:N.ci??process.env.CI==="true",retries:N.retries??(N.ci?3:1)};return{async snapshot(M,X){let q=$.join(Y.snapshotDir,`${X}.html`),G=C(M),Q=K(G);if(await Bun.file(q).exists()){let W=await Bun.file(q).text(),Z=K(C(W));if(Q===Z)return{passed:!0,snapshotPath:q,message:"Snapshot matches"};if(Y.updateSnapshots)return await B.promises.mkdir($.dirname(q),{recursive:!0}),await Bun.write(q,G),{passed:!0,snapshotPath:q,message:"Snapshot updated"};let F=$.join(Y.diffDir,`${X}.actual.html`),U=$.join(Y.diffDir,`${X}.diff.html`);return await B.promises.mkdir(Y.diffDir,{recursive:!0}),await Bun.write(F,G),await Bun.write(U,I(W,G)),{passed:!1,snapshotPath:q,actualPath:F,diffPath:U,message:"Snapshot does not match"}}return await B.promises.mkdir($.dirname(q),{recursive:!0}),await Bun.write(q,G),{passed:!0,snapshotPath:q,message:"New snapshot created"}},async snapshotJson(M,X){let q=$.join(Y.snapshotDir,`${X}.json`),G=JSON.stringify(M,null,2);if(await Bun.file(q).exists()){let Q=await Bun.file(q).text();if(G===Q)return{passed:!0,snapshotPath:q};if(Y.updateSnapshots)return await Bun.write(q,G),{passed:!0,snapshotPath:q,message:"Snapshot updated"};return{passed:!1,snapshotPath:q,message:`JSON snapshot mismatch:
|
|
3
3
|
${z(Q,G)}`}}return await B.promises.mkdir($.dirname(q),{recursive:!0}),await Bun.write(q,G),{passed:!0,snapshotPath:q,message:"New snapshot created"}},matchInlineSnapshot(M,X){let q=C(M);if(X===void 0)return{passed:!0,expected:q};let G=C(X);return{passed:q===G,expected:q}},getConfig(){return Y}}}function D(N={}){let Y=J(N),M=Y.getConfig();return{async compareScreenshots(X,q,G="desktop"){let Q=$.join(M.screenshotDir,G,`${X}.png`),W=$.join(M.diffDir,G,`${X}.actual.png`),Z=$.join(M.diffDir,G,`${X}.diff.png`);if(await Bun.file(Q).exists()){let F=await Bun.file(Q).arrayBuffer(),U=Buffer.from(F),_=await M.compare(q,U);if(_.match||_.diffPercentage<=M.threshold)return{viewport:G,passed:!0,baselinePath:Q};if(M.updateSnapshots)return await B.promises.mkdir($.dirname(Q),{recursive:!0}),await Bun.write(Q,q),{viewport:G,passed:!0,baselinePath:Q};if(await B.promises.mkdir($.dirname(W),{recursive:!0}),await Bun.write(W,q),_.diffImage&&M.generateDiff)await Bun.write(Z,_.diffImage);return{viewport:G,passed:!1,baselinePath:Q,actualPath:W,diffPath:M.generateDiff?Z:void 0,diffPercentage:_.diffPercentage}}return await B.promises.mkdir($.dirname(Q),{recursive:!0}),await Bun.write(Q,q),{viewport:G,passed:!0,baselinePath:Q}},async testViewports(X,q,G=M.viewports){let Q=[];for(let W of G){let Z=null;for(let F=0;F<M.retries;F++)try{let U=await q(W),_=await this.compareScreenshots(X,U,W.name);Q.push(_),Z=null;break}catch(U){if(Z=U,F<M.retries-1)await new Promise((_)=>setTimeout(_,100*(F+1)))}if(Z)Q.push({viewport:W.name,passed:!1,baselinePath:"",diffPercentage:100})}return Q},getSnapshotTester(){return Y}}}function L(N={}){let M=D(N).getSnapshotTester(),X=new Map;return{addStory(q){X.set(`${q.component}/${q.name}`,q)},addStories(q){for(let G of q)this.addStory(G)},getStories(){return Array.from(X.values())},getStoriesForComponent(q){return Array.from(X.values()).filter((G)=>G.component===q)},async testStory(q){let G=X.get(q);if(!G)return{name:q,passed:!1,duration:0,snapshots:[],screenshots:[],errors:[Error(`Story not found: ${q}`)]};let Q=Date.now(),W={name:q,passed:!0,duration:0,snapshots:[],screenshots:[],errors:[]};try{let Z=await G.render(),F=await M.snapshot(Z,q.replace(/\//g,"-"));if(W.snapshots.push(F),!F.passed)W.passed=!1}catch(Z){W.passed=!1,W.errors.push(Z)}return W.duration=Date.now()-Q,W},async testAllStories(){let q=[];for(let G of X.keys()){let Q=await this.testStory(G);q.push(Q)}return q},async generateStoryIndex(){let q={};for(let G of X.values()){if(!q[G.component])q[G.component]=[];q[G.component].push({name:G.name,args:G.args})}return JSON.stringify(q,null,2)}}}async function S(N,Y={}){let M={outputDir:Y.outputDir||"visual-test-report",format:Y.format||"html",title:Y.title||"Visual Test Report",includeScreenshots:Y.includeScreenshots??!0};await B.promises.mkdir(M.outputDir,{recursive:!0});let X=N.length,q=N.filter((F)=>F.passed).length,G=X-q,Q=N.reduce((F,U)=>F+U.duration,0);if(M.format==="json"){let F={title:M.title,summary:{total:X,passed:q,failed:G,duration:Q},results:N,generatedAt:new Date().toISOString()},U=$.join(M.outputDir,"report.json");return await Bun.write(U,JSON.stringify(F,null,2)),U}if(M.format==="markdown"){let F=`# ${M.title}
|
|
4
4
|
|
|
5
5
|
`;F+=`## Summary
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/stx",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.321",
|
|
5
5
|
"description": "A performant UI Framework. Powered by Bun.",
|
|
6
6
|
"author": "Chris Breuer <chris@stacksjs.org>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -117,14 +117,14 @@
|
|
|
117
117
|
"dependencies": {
|
|
118
118
|
"@stacksjs/ts-css": "^0.3.2",
|
|
119
119
|
"@stacksjs/clapp": "^0.2.14",
|
|
120
|
-
"@stacksjs/desktop": "0.2.
|
|
121
|
-
"@stacksjs/sanitizer": "0.2.
|
|
120
|
+
"@stacksjs/desktop": "0.2.321",
|
|
121
|
+
"@stacksjs/sanitizer": "0.2.321",
|
|
122
122
|
"@stacksjs/ts-i18n": "^0.1.11",
|
|
123
|
-
"bun-plugin-stx": "0.2.
|
|
123
|
+
"bun-plugin-stx": "0.2.321",
|
|
124
124
|
"bunfig": "^0.15.17",
|
|
125
|
-
"stx-router": "0.2.
|
|
125
|
+
"stx-router": "0.2.321",
|
|
126
126
|
"ts-broadcasting": "^0.0.9",
|
|
127
|
-
"ts-images": "^0.2.
|
|
127
|
+
"ts-images": "^0.2.22",
|
|
128
128
|
"ts-syntax-highlighter": "^0.2.1"
|
|
129
129
|
}
|
|
130
130
|
}
|
package/dist/chunk-0ggq64sc.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Ao as e,Bo as f,Co as g,Do as h,Eo as i,Fo as j,Go as k,Ho as l,Io as m,wo as a,xo as b,yo as c,zo as d}from"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{m as stripStxRuntimeImports,b as scanScriptTags,l as rewriteStxImportSpecifiers,j as processSignals,h as processScriptSetup,f as preEvalLiteralReactiveIfs,c as parseLoopExpression,d as hasSignalsSyntax,k as findMarkupIndexOutsideScripts,i as extractExports,g as convertSignalLoopsToAttributes,e as convertSignalDirectivesToAttributes,a as clearScriptScanCache};
|
package/dist/chunk-1ppaw4xs.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Wo as a,Xo as b}from"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{b as processLoops,a as parseLoopBinding};
|
package/dist/chunk-455m2k1y.js
DELETED
package/dist/chunk-65hqene1.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Qo as a,So as b,Uo as c,Vo as d,aq as e,bq as f,cq as g,dq as h,eq as i,fq as j,gq as k,hq as l,iq as m,jq as n,kq as o,lq as p,mq as q,nq as r,oq as s,pq as t,qq as u,rq as v,sq as w,tq as x}from"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{e as validateTemplate,g as validateDirective,n as userComponentFileExists,m as transpileTypeScript,p as slotContentHasExpressions,k as shouldTranspileTypeScript,t as resolveTemplatePath,r as renderComponentWithSlot,j as isJavaScriptScript,o as isHydrateTrigger,d as hasVariables,h as hasDirectives,u as getSourceLineInfo,l as getSharedTranspiler,f as getPositionInfo,x as getComponentCacheStats,s as fileExists,a as extractVariables,c as extractScriptFromTemplate,i as extractDirectiveNames,v as createDetailedErrorMessage,b as convertToCommonJS,q as componentClientSignalNames,w as clearComponentCache};
|
package/dist/chunk-6vt9ddra.js
DELETED
package/dist/chunk-6xmx6stb.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Pi as a,Qi as b}from"./chunk-yzb20ane.js";import"./chunk-xwxdwqn9.js";import"./chunk-s2kxa1tb.js";import"./chunk-zebypbks.js";import"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{a as getStoreScript,b as clearStoreCache};
|
package/dist/chunk-8618n28z.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{gl as a,hl as b,il as c,jl as d,kl as e,ll as f,ml as g,nl as h,ol as i,pl as j,ql as k,rl as l,sl as m,tl as n}from"./chunk-s2kxa1tb.js";import"./chunk-zebypbks.js";import"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{b as shouldLogBundlerDiagnostics,f as setBundlerFallbackMode,l as rewriteRegistryImports,g as resolveBundlerFallback,j as registryIdForPath,c as recordBundleFailure,m as queueClientBundleBuild,k as normalizeRegistrySpecifiers,h as hasUserImports,d as getBundleFailures,a as clientBundleDependencies,e as clearBundleFailures,n as bundleClientScript,i as MODULE_SPECIFIER_PREFIX};
|
package/dist/chunk-8avktqwz.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Ri as a,Si as b,Ti as c}from"./chunk-acctstj3.js";import"./chunk-xwxdwqn9.js";import"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{a as listComposableModules,b as getComposableScript,c as clearComposableCache};
|
package/dist/chunk-8z11nkyk.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Le as c,Me as d,Ne as e,Oe as f,Pe as g,Qe as h}from"./chunk-5qseeh5t.js";import{Xf as a,_f as b}from"./chunk-pknc4efv.js";import"./chunk-acctstj3.js";import"./chunk-xwxdwqn9.js";import"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{d as virtualPathFor,g as typecheckStxFiles,e as sourcePathFor,h as formatTypecheckDiagnostics,f as findRuntimeTypeDeclarations,b as extractTemplateExpressions,a as extractScriptBlocks,c as buildVirtualSource};
|
package/dist/chunk-95jjdgmb.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Vg as a,Wg as b,Xg as c,Yg as d,Zg as e,_g as f}from"./chunk-tqayztkh.js";import"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{c as renderSlot,d as processSlots,a as parseSlots,b as parseSlotElement,e as extractSlotContent,f as applySlots};
|
package/dist/chunk-9aw5d4rr.js
DELETED
package/dist/chunk-9g14542g.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Te as a}from"./chunk-wb24hk90.js";import"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{a as startInteractive};
|
package/dist/chunk-9h4fkwtj.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{$p as e,Yp as b,Zp as c,_p as d,vo as a}from"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{d as validateClientScript,c as processOnceDirective,b as processJsonDirective,e as processDirectives,a as injectRouterScript};
|
package/dist/chunk-bxvqqejm.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{$j as h,Uj as a,Vj as b,Wj as c,Xj as d,Yj as e,Zj as f,_j as g,ak as i,bk as j,ck as k,dk as l}from"./chunk-jg2gbd58.js";import"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{a as templateCache,b as readFileCached,d as invalidateFileCacheByDir,c as invalidateFileCache,l as hashFilePath,h as getServeClientAsset,f as getCachedSignalsRuntime,g as getCachedRouterScript,i as clearDevCaches,j as checkCache,k as cacheTemplate,e as __setSignalsGeneratorsForTest};
|
package/dist/chunk-bzmxbz48.js
DELETED
package/dist/chunk-f9qrz82p.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{$i as e,Xi as a,Yi as b,Zi as c,_i as d,aj as f,bj as g,cj as h,dj as i,ej as j,fj as k,gj as l,hj as m,ij as n}from"./chunk-szkq9s8n.js";import"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{i as streamingSuspenseDirective,m as streamToResponse,g as streamTemplateSimple,a as streamTemplate,d as renderStreamingPage,k as registerStreamingDirectives,e as processStreamDirectives,l as processSectionDirectives,j as islandDirective,n as generateHydrationRuntime,f as extractStreamBoundaries,h as createStreamRenderer,b as buildSuspenseResolveScript,c as SUSPENSE_RESOLVER_RUNTIME};
|
package/dist/chunk-g8vf2fc7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Wf as a}from"./chunk-6c1ebjat.js";import"./chunk-pknc4efv.js";import"./chunk-gpesxpwq.js";import"./chunk-dvvx1wny.js";import"./chunk-tph7b269.js";import"./chunk-t41aaehf.js";import"./chunk-09zjty4k.js";import"./chunk-zebypbks.js";import"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{a as buildForProduction};
|
package/dist/chunk-h63vszd3.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Mo as a,No as b,Oo as c,Po as d,Qo as e,Ro as f,So as g,To as h,Uo as i,Vo as j}from"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{b as stripTypeScript,h as splitDeclaration,c as isModuleResolutionFailure,d as isMissingBindingFailure,f as isCompleteImport,j as hasVariables,e as extractVariables,i as extractScriptFromTemplate,g as convertToCommonJS,a as STX_ENGINE_BINDING_NAMES};
|
package/dist/chunk-h78pksyp.js
DELETED
package/dist/chunk-hxf6zg80.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{em as c,hm as d,im as e,jm as f,km as g,lm as h,mm as i,nm as j,om as k,pm as l,qm as m}from"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import{it as a,jt as b}from"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{h as transformAutoImports,b as stripCommentsAndLiterals,e as renderVendorStyleTags,m as processClientScript,g as injectBrowserCoreAutoImports,l as generateServerDataBridge,j as generateBrowserAutoImportDestructuring,i as generateAutoImportDestructuring,a as findInterpolationEnd,k as extractBridgeData,d as extractAndStripCssImports,f as STX_AUTO_IMPORTS,c as BROWSER_CORE_IMPORTS};
|
package/dist/chunk-jr79tvvs.js
DELETED
package/dist/chunk-jwnbwemq.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{createHash as U}from"crypto";import Z from"fs";import Q from"path";import{generateThumbHash as w}from"ts-images";import{createImageDeliveryCatalog as T}from"ts-images/delivery";var L=new Set([".avif",".jpeg",".jpg",".png",".webp"]),F=[320,640,960,1280,1920],O="/_stx/images",Y=new Map;function R(j){return`/${j.split(Q.sep).map(encodeURIComponent).join("/")}`}function E(j){let q=Q.extname(j),G=j.slice(0,-q.length).replace(/[^a-zA-Z0-9_-]+/g,"-").replace(/^-+|-+$/g,""),J=U("sha256").update(j).digest("hex").slice(0,8);return`${G||"image"}-${J}`}function C(j){let q=(G)=>`${O}/${G.split("/").map(encodeURIComponent).join("/")}`;return{cacheNamespace:`stx:${O}`,async stat(G){let J=Q.join(j,G);try{let B=await Z.promises.stat(J);return B.size>0?{bytes:B.size,path:J,url:q(G)}:null}catch{return null}},async write(G,J){let B=Q.join(j,G);await Z.promises.mkdir(Q.dirname(B),{recursive:!0});let K=`${B}.${process.pid}.tmp`;return await Z.promises.writeFile(K,J),await Z.promises.rename(K,B),{bytes:J.byteLength,path:B,url:q(G)}},url:q}}async function z(j,q=j){let G=await Z.promises.readdir(q,{withFileTypes:!0});G.sort((B,K)=>B.name.localeCompare(K.name));let J=[];for(let B of G){let K=Q.join(q,B.name);if(B.isDirectory()){J.push(...await z(j,K));continue}if(!B.isFile()||!L.has(Q.extname(B.name).toLowerCase()))continue;J.push({absolutePath:K,relativePath:Q.relative(j,K)})}return J}function _(j){return j.map((q)=>({key:R(q.relativePath),input:q.absolutePath,name:E(q.relativePath)}))}async function I(j){let q=[],G=8;for(let J=0;J<j.length;J+=8){let B=j.slice(J,J+8),K=await Promise.all(B.map(async(M)=>{try{return await w(M.absolutePath),M}catch{return console.warn(`[stx-images] Skipping unreadable raster: ${M.relativePath}`),null}}));q.push(...K.filter((M)=>M!==null))}return q}function V(j){return Q.join(j,"undecodable.json")}function k(j){try{let q=Z.readFileSync(V(j),"utf-8"),G=JSON.parse(q);return G&&typeof G==="object"?G:{}}catch{return{}}}function P(j,q){try{Z.mkdirSync(Q.dirname(V(j)),{recursive:!0}),Z.writeFileSync(V(j),JSON.stringify(q))}catch{}}function S(j){try{let q=Z.statSync(j);return{mtimeMs:q.mtimeMs,size:q.size}}catch{return}}function m(j){if(!j||j.startsWith("data:")||j.startsWith("blob:")||/^https?:\/\//i.test(j)||j.startsWith("//"))return;let q=j.split(/[?#]/,1)[0];if(!q)return;try{return`/${q.replace(/^\/+/,"").split("/").map(decodeURIComponent).map(encodeURIComponent).join("/")}`}catch{return}}function h(j){let q=m(j);return q?Y.get(q):void 0}function N(){Y=new Map}async function n(j,q){if(!j||!Z.existsSync(j))return N(),{count:0,fingerprint:""};let G=await z(j);if(G.length===0)return N(),{count:0,fingerprint:""};let J=k(q),B=G.filter((A)=>{let x=J[A.relativePath];if(!x)return!0;let $=S(A.absolutePath);return!$||$.mtimeMs!==x.mtimeMs||$.size!==x.size});if(B.length===0)return N(),{count:0,fingerprint:""};let K={outDir:Q.join(q,"_stx","images"),storage:C(Q.join(q,"_stx","images")),baseUrl:O,widths:F,formats:["avif","webp"],quality:{avif:70,webp:78,jpeg:82,png:100},includeOriginal:!1,placeholder:!0,batchConcurrency:4,concurrency:4},M=B,X;try{X=await T({...K,entries:_(B)})}catch(A){if(M=await I(B),M.length===B.length)throw A;let x=new Set(M.map((W)=>W.relativePath)),$=!1;for(let W of B){if(x.has(W.relativePath))continue;let H=S(W.absolutePath);if(!H)continue;J[W.relativePath]=H,$=!0}if($)P(q,J);if(M.length===0)return N(),{count:0,fingerprint:""};X=await T({...K,entries:_(M)})}return Y=new Map(Object.entries(X.entries)),{count:M.length,fingerprint:X.fingerprint}}
|
|
3
|
-
export{h as bu,N as cu,n as du};
|
package/dist/chunk-mvj75wef.js
DELETED
package/dist/chunk-n0t2at1c.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Ye as a}from"./chunk-prry9kgy.js";import"./chunk-gpesxpwq.js";import"./chunk-dvvx1wny.js";import"./chunk-zebypbks.js";import"./chunk-spzbfqjn.js";import"./chunk-raxr83fs.js";import"./chunk-at84gyvf.js";import"./chunk-397rqs12.js";import"./chunk-aqrp68m6.js";import"./chunk-egr5663e.js";import"./chunk-jwnbwemq.js";import"./chunk-ry1key0g.js";import"./chunk-4ee1aaet.js";import"./chunk-wkcnyv6m.js";import"./chunk-18p8dqya.js";import"./chunk-64ttktzc.js";import"./chunk-xcsf7my7.js";import"./chunk-2kv2gnzc.js";import"./chunk-ttny9g8k.js";import"./chunk-bbq82jww.js";import"./chunk-9ebfmdyb.js";import"./chunk-jryjwara.js";export{a as startProductionServer};
|