@stacksjs/stx 0.2.90 → 0.2.92
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/app-shell.js +1 -1
- package/dist/assets.js +1 -1
- package/dist/build-mode-detector.js +1 -1
- package/dist/build-views.js +1 -1
- package/dist/build.js +1 -1
- package/dist/builtins/index.js +1 -1
- package/dist/caching.js +1 -1
- package/dist/{chunk-fk6ted7p.js → chunk-14kfmww0.js} +1 -1
- package/dist/{chunk-7m6jbrky.js → chunk-3ewtm19c.js} +1 -1
- package/dist/{chunk-xnf61ake.js → chunk-646pxdd1.js} +1 -1
- package/dist/{chunk-vbysnq00.js → chunk-6t76k6ry.js} +1 -1
- package/dist/{chunk-2hnv9414.js → chunk-7bd8bw2z.js} +1 -1
- package/dist/{chunk-nsbwxkj5.js → chunk-87rkm7qf.js} +1 -1
- package/dist/{chunk-j55xkgq8.js → chunk-8fhv0xaw.js} +1 -1
- package/dist/{chunk-pthx7bxa.js → chunk-9tksycj5.js} +1 -1
- package/dist/{chunk-0n11c9hw.js → chunk-9w7021bx.js} +1 -1
- package/dist/{chunk-j0mbt7fb.js → chunk-ewytyv0p.js} +1 -1
- package/dist/{chunk-y248bdr9.js → chunk-fnqf7293.js} +1 -1
- package/dist/{chunk-sx35cb80.js → chunk-ftzqtv1k.js} +1 -1
- package/dist/{chunk-tqzv7g2r.js → chunk-g22tv0ed.js} +1 -1
- package/dist/{chunk-4bpb2es7.js → chunk-g9gksn68.js} +1 -1
- package/dist/{chunk-crjrbczd.js → chunk-gfsk93gv.js} +2 -2
- package/dist/{chunk-w7bgs9ze.js → chunk-hz7qnpx1.js} +1 -1
- package/dist/{chunk-4e3yxhkd.js → chunk-mqnymcn5.js} +1 -1
- package/dist/{chunk-bdp5z6mt.js → chunk-ms9rebfj.js} +1 -1
- package/dist/{chunk-4wsmprpm.js → chunk-nwfa5766.js} +10 -10
- package/dist/{chunk-krxvy5wr.js → chunk-qhzdkgg3.js} +1 -1
- package/dist/{chunk-syffx53n.js → chunk-r5sggjdv.js} +1 -1
- package/dist/{chunk-t88cgftn.js → chunk-rhyxeb33.js} +1 -1
- package/dist/chunk-tzd81m7r.js +1539 -0
- package/dist/{chunk-gfj0a29j.js → chunk-vy0k2prz.js} +1 -1
- package/dist/{chunk-xxgdw2s8.js → chunk-zx43nkm1.js} +1 -1
- package/dist/cli.js +478 -478
- package/dist/client-script.js +1 -1
- package/dist/component-processing.js +1 -1
- package/dist/component-registry.js +1 -1
- package/dist/component-renderer.js +1 -1
- package/dist/components.js +1 -1
- package/dist/config.js +1 -1
- package/dist/dev-server/crosswind.js +1 -1
- package/dist/dev-server/index.js +1 -1
- package/dist/dev-server/serve-app.js +1 -1
- package/dist/dev-server/serve-file.js +1 -1
- package/dist/dev-server/serve-markdown.js +1 -1
- package/dist/dev-server/serve-multi.js +1 -1
- package/dist/dev-server.js +1 -1
- package/dist/docs.js +1 -1
- package/dist/dynamic-components.js +1 -1
- package/dist/expressions.js +1 -1
- package/dist/includes.js +1 -1
- package/dist/index.js +1 -1
- package/dist/interactive.js +1 -1
- package/dist/js-ts.js +1 -1
- package/dist/loops.js +1 -1
- package/dist/markdown.js +1 -1
- package/dist/middleware.js +1 -1
- package/dist/plugin.js +1 -1
- package/dist/process.js +1 -1
- package/dist/production-builder.js +1 -1
- package/dist/production-server.js +1 -1
- package/dist/pwa/index.js +1 -1
- package/dist/pwa/offline.js +1 -1
- package/dist/pwa.js +318 -318
- package/dist/reactive.js +1 -1
- package/dist/render.js +1 -1
- package/dist/runtime-injection.js +1 -1
- package/dist/serve.js +1 -1
- package/dist/signal-processing.js +1 -1
- package/dist/site-builder/build.js +1 -1
- package/dist/site-builder/index.js +1 -1
- package/dist/slots.js +1 -1
- package/dist/ssg.js +310 -310
- package/dist/ssr.js +1 -1
- package/dist/store-loader.js +1 -1
- package/dist/story/cli.js +1 -1
- package/dist/story/commands/dev.js +1 -1
- package/dist/story/commands/index.js +1 -1
- package/dist/story/index.js +1 -1
- package/dist/story/renderer.js +1 -1
- package/dist/story/server.js +1 -1
- package/dist/story/visual-testing.js +1 -1
- package/dist/streaming.js +1 -1
- package/dist/template-compiler.js +1 -1
- package/dist/template-hydrator.js +1 -1
- package/dist/testing.js +1 -1
- package/dist/utils.js +1 -1
- package/dist/variable-extractor.js +1 -1
- package/dist/web-components.js +1 -1
- package/package.json +6 -7
- package/dist/chunk-qjn5xmeh.js +0 -1539
- /package/dist/{chunk-29qrr0nc.js → chunk-0t75nh4z.js} +0 -0
- /package/dist/{chunk-fze9db64.js → chunk-pcngkyjr.js} +0 -0
- /package/dist/{chunk-tfjem6g3.js → chunk-r3cxnszy.js} +0 -0
- /package/dist/{chunk-04jkv9xx.js → chunk-v0s45ek4.js} +0 -0
- /package/dist/{chunk-dcpbe8a1.js → chunk-wbrqpv9f.js} +0 -0
package/dist/app-shell.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ct as a,Dt as b,Et as c,Ft as d,Gt as e,Ht as f,It as g}from"./chunk-
|
|
2
|
+
import{Ct as a,Dt as b,Et as c,Ft as d,Gt as e,Ht as f,It as g}from"./chunk-r3cxnszy.js";import"./chunk-7sd6c9wv.js";import"./chunk-6r70w54p.js";export{d as stripDocumentWrapper,b as processShell,e as isSpaNavigation,g as extractLayoutMetadata,f as extractContainerContent,a as detectShell,c as composeShellWithPage};
|
package/dist/assets.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ru as a,Su as b,Tu as c}from"./chunk-
|
|
2
|
+
import{Ru as a,Su as b,Tu as c}from"./chunk-tzd81m7r.js";import"./chunk-ktpc2rc4.js";import"./chunk-2aydpj2n.js";import"./chunk-nwfa5766.js";import"./chunk-9p45wwff.js";import"./chunk-m911bf2b.js";import"./chunk-zwdargbj.js";import"./chunk-a50svyjn.js";import"./chunk-7aph6rw7.js";import"./chunk-y92w0240.js";import"./chunk-v9199ywv.js";import"./chunk-a4zj7qpt.js";import"./chunk-zepv7y44.js";import"./chunk-v0s45ek4.js";import"./chunk-2rd0ykrg.js";import"./chunk-6sx4d083.js";import"./chunk-r7d26vjj.js";import"./chunk-ccgmxmjk.js";import"./chunk-593x2ccf.js";import"./chunk-1bzckhs2.js";import"./chunk-a2xzs4kd.js";import"./chunk-fk0m346m.js";import"./chunk-npj33yqb.js";import"./chunk-dtcj9r7p.js";import"./chunk-5tv1swsr.js";import"./chunk-8g0jb444.js";import"./chunk-h1035wzj.js";import"./chunk-ms6793rw.js";import"./chunk-zr8631g4.js";import"./chunk-c9f5k95v.js";import"./chunk-9fj7hpwa.js";import"./chunk-rdaavfsg.js";import"./chunk-e792k31a.js";import"./chunk-tavtph8x.js";import"./chunk-0t75nh4z.js";import"./chunk-exfw0aqe.js";import"./chunk-fh1d8bxd.js";import"./chunk-w719zps0.js";import"./chunk-eghdf4qq.js";import"./chunk-xgmza98t.js";import"./chunk-zxxt0c9q.js";import"./chunk-xqq1vxb6.js";import"./chunk-xw9skf0n.js";import"./chunk-t7ghqd7e.js";import"./chunk-xmjedbkt.js";import"./chunk-1zgsgk4b.js";import"./chunk-xzjrrd36.js";import"./chunk-gcsqn7x9.js";import"./chunk-7t4hkmxb.js";import"./chunk-pjaa8q7x.js";import"./chunk-b0w1cm1s.js";import"./chunk-jm460jxs.js";import"./chunk-srq3dkj8.js";import"./chunk-h6s1thg6.js";import"./chunk-yssvz8zs.js";import"./chunk-rkr7cgs8.js";import"./chunk-md4j8nch.js";import"./chunk-qvmrwh8n.js";import"./chunk-3rgj1qn6.js";import"./chunk-4ep9gk7d.js";import"./chunk-zvyc82ke.js";import"./chunk-1w3354fv.js";import"./chunk-sd2c11bp.js";import"./chunk-sk1gmrr8.js";import"./chunk-hkjq64we.js";import"./chunk-9ezvda3j.js";import"./chunk-c23697dp.js";import"./chunk-r6sb1sm4.js";import"./chunk-p5j0686t.js";import"./chunk-bg1xym0q.js";import"./chunk-08ncwhv7.js";import"./chunk-6jhqq7es.js";import"./chunk-r1m8g439.js";import"./chunk-6r70w54p.js";export{b as readMarkdownFile,c as processMarkdownFileDirectives,a as markdownCache};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{it as a,jt as b}from"./chunk-
|
|
2
|
+
import{it as a,jt as b}from"./chunk-9w7021bx.js";import"./chunk-tzd81m7r.js";import"./chunk-ktpc2rc4.js";import"./chunk-2aydpj2n.js";import"./chunk-nwfa5766.js";import"./chunk-9p45wwff.js";import"./chunk-m911bf2b.js";import"./chunk-zwdargbj.js";import"./chunk-a50svyjn.js";import"./chunk-7aph6rw7.js";import"./chunk-y92w0240.js";import"./chunk-v9199ywv.js";import"./chunk-a4zj7qpt.js";import"./chunk-zepv7y44.js";import"./chunk-v0s45ek4.js";import"./chunk-2rd0ykrg.js";import"./chunk-6sx4d083.js";import"./chunk-r7d26vjj.js";import"./chunk-ccgmxmjk.js";import"./chunk-593x2ccf.js";import"./chunk-1bzckhs2.js";import"./chunk-a2xzs4kd.js";import"./chunk-fk0m346m.js";import"./chunk-npj33yqb.js";import"./chunk-dtcj9r7p.js";import"./chunk-5tv1swsr.js";import"./chunk-8g0jb444.js";import"./chunk-h1035wzj.js";import"./chunk-ms6793rw.js";import"./chunk-zr8631g4.js";import"./chunk-c9f5k95v.js";import"./chunk-9fj7hpwa.js";import"./chunk-rdaavfsg.js";import"./chunk-e792k31a.js";import"./chunk-tavtph8x.js";import"./chunk-0t75nh4z.js";import"./chunk-exfw0aqe.js";import"./chunk-fh1d8bxd.js";import"./chunk-w719zps0.js";import"./chunk-eghdf4qq.js";import"./chunk-xgmza98t.js";import"./chunk-zxxt0c9q.js";import"./chunk-xqq1vxb6.js";import"./chunk-xw9skf0n.js";import"./chunk-t7ghqd7e.js";import"./chunk-xmjedbkt.js";import"./chunk-1zgsgk4b.js";import"./chunk-xzjrrd36.js";import"./chunk-gcsqn7x9.js";import"./chunk-7t4hkmxb.js";import"./chunk-pjaa8q7x.js";import"./chunk-b0w1cm1s.js";import"./chunk-jm460jxs.js";import"./chunk-srq3dkj8.js";import"./chunk-h6s1thg6.js";import"./chunk-yssvz8zs.js";import"./chunk-rkr7cgs8.js";import"./chunk-md4j8nch.js";import"./chunk-qvmrwh8n.js";import"./chunk-3rgj1qn6.js";import"./chunk-4ep9gk7d.js";import"./chunk-zvyc82ke.js";import"./chunk-1w3354fv.js";import"./chunk-sd2c11bp.js";import"./chunk-sk1gmrr8.js";import"./chunk-hkjq64we.js";import"./chunk-9ezvda3j.js";import"./chunk-c23697dp.js";import"./chunk-r6sb1sm4.js";import"./chunk-p5j0686t.js";import"./chunk-bg1xym0q.js";import"./chunk-08ncwhv7.js";import"./chunk-6jhqq7es.js";import"./chunk-r1m8g439.js";import"./chunk-6r70w54p.js";export{b as validateComponentScripts,a as detectBuildMode};
|
package/dist/build-views.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{vt as a,wt as b,xt as c,yt as d,zt as e}from"./chunk-
|
|
2
|
+
import{vt as a,wt as b,xt as c,yt as d,zt as e}from"./chunk-9tksycj5.js";import"./chunk-tzd81m7r.js";import"./chunk-ktpc2rc4.js";import"./chunk-2aydpj2n.js";import"./chunk-nwfa5766.js";import"./chunk-9p45wwff.js";import"./chunk-m911bf2b.js";import"./chunk-zwdargbj.js";import"./chunk-a50svyjn.js";import"./chunk-7aph6rw7.js";import"./chunk-y92w0240.js";import"./chunk-v9199ywv.js";import"./chunk-a4zj7qpt.js";import"./chunk-zepv7y44.js";import"./chunk-v0s45ek4.js";import"./chunk-2rd0ykrg.js";import"./chunk-6sx4d083.js";import"./chunk-r7d26vjj.js";import"./chunk-ccgmxmjk.js";import"./chunk-593x2ccf.js";import"./chunk-1bzckhs2.js";import"./chunk-a2xzs4kd.js";import"./chunk-fk0m346m.js";import"./chunk-npj33yqb.js";import"./chunk-dtcj9r7p.js";import"./chunk-5tv1swsr.js";import"./chunk-8g0jb444.js";import"./chunk-h1035wzj.js";import"./chunk-ms6793rw.js";import"./chunk-zr8631g4.js";import"./chunk-c9f5k95v.js";import"./chunk-9fj7hpwa.js";import"./chunk-rdaavfsg.js";import"./chunk-e792k31a.js";import"./chunk-tavtph8x.js";import"./chunk-0t75nh4z.js";import"./chunk-exfw0aqe.js";import"./chunk-fh1d8bxd.js";import"./chunk-w719zps0.js";import"./chunk-eghdf4qq.js";import"./chunk-xgmza98t.js";import"./chunk-zxxt0c9q.js";import"./chunk-xqq1vxb6.js";import"./chunk-xw9skf0n.js";import"./chunk-t7ghqd7e.js";import"./chunk-xmjedbkt.js";import"./chunk-1zgsgk4b.js";import"./chunk-xzjrrd36.js";import"./chunk-gcsqn7x9.js";import"./chunk-7t4hkmxb.js";import"./chunk-pjaa8q7x.js";import"./chunk-b0w1cm1s.js";import"./chunk-jm460jxs.js";import"./chunk-srq3dkj8.js";import"./chunk-h6s1thg6.js";import"./chunk-yssvz8zs.js";import"./chunk-rkr7cgs8.js";import"./chunk-md4j8nch.js";import"./chunk-qvmrwh8n.js";import"./chunk-3rgj1qn6.js";import"./chunk-4ep9gk7d.js";import"./chunk-zvyc82ke.js";import"./chunk-1w3354fv.js";import"./chunk-sd2c11bp.js";import"./chunk-sk1gmrr8.js";import"./chunk-hkjq64we.js";import"./chunk-9ezvda3j.js";import"./chunk-c23697dp.js";import"./chunk-r6sb1sm4.js";import"./chunk-p5j0686t.js";import"./chunk-bg1xym0q.js";import"./chunk-08ncwhv7.js";import"./chunk-6jhqq7es.js";import"./chunk-r1m8g439.js";import"./chunk-6r70w54p.js";export{c as watchViews,a as renderView,d as renderEmail,e as default,b as buildViews};
|
package/dist/build.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{As as a}from"./chunk-
|
|
2
|
+
import{As as a}from"./chunk-qhzdkgg3.js";import"./chunk-tzd81m7r.js";import"./chunk-ktpc2rc4.js";import"./chunk-2aydpj2n.js";import"./chunk-nwfa5766.js";import"./chunk-9p45wwff.js";import"./chunk-m911bf2b.js";import"./chunk-zwdargbj.js";import"./chunk-a50svyjn.js";import"./chunk-7aph6rw7.js";import"./chunk-y92w0240.js";import"./chunk-v9199ywv.js";import"./chunk-a4zj7qpt.js";import"./chunk-zepv7y44.js";import"./chunk-v0s45ek4.js";import"./chunk-2rd0ykrg.js";import"./chunk-6sx4d083.js";import"./chunk-r7d26vjj.js";import"./chunk-ccgmxmjk.js";import"./chunk-593x2ccf.js";import"./chunk-1bzckhs2.js";import"./chunk-a2xzs4kd.js";import"./chunk-fk0m346m.js";import"./chunk-npj33yqb.js";import"./chunk-dtcj9r7p.js";import"./chunk-5tv1swsr.js";import"./chunk-8g0jb444.js";import"./chunk-h1035wzj.js";import"./chunk-ms6793rw.js";import"./chunk-zr8631g4.js";import"./chunk-c9f5k95v.js";import"./chunk-9fj7hpwa.js";import"./chunk-rdaavfsg.js";import"./chunk-e792k31a.js";import"./chunk-tavtph8x.js";import"./chunk-0t75nh4z.js";import"./chunk-exfw0aqe.js";import"./chunk-fh1d8bxd.js";import"./chunk-w719zps0.js";import"./chunk-eghdf4qq.js";import"./chunk-xgmza98t.js";import"./chunk-zxxt0c9q.js";import"./chunk-xqq1vxb6.js";import"./chunk-xw9skf0n.js";import"./chunk-t7ghqd7e.js";import"./chunk-xmjedbkt.js";import"./chunk-1zgsgk4b.js";import"./chunk-xzjrrd36.js";import"./chunk-gcsqn7x9.js";import"./chunk-7t4hkmxb.js";import"./chunk-pjaa8q7x.js";import"./chunk-b0w1cm1s.js";import"./chunk-jm460jxs.js";import"./chunk-srq3dkj8.js";import"./chunk-h6s1thg6.js";import"./chunk-yssvz8zs.js";import"./chunk-rkr7cgs8.js";import"./chunk-md4j8nch.js";import"./chunk-qvmrwh8n.js";import"./chunk-3rgj1qn6.js";import"./chunk-4ep9gk7d.js";import"./chunk-zvyc82ke.js";import"./chunk-1w3354fv.js";import"./chunk-sd2c11bp.js";import"./chunk-sk1gmrr8.js";import"./chunk-hkjq64we.js";import"./chunk-9ezvda3j.js";import"./chunk-c23697dp.js";import"./chunk-r6sb1sm4.js";import"./chunk-p5j0686t.js";import"./chunk-bg1xym0q.js";import"./chunk-08ncwhv7.js";import"./chunk-6jhqq7es.js";import"./chunk-r1m8g439.js";import"./chunk-6r70w54p.js";export{a as buildApp};
|
package/dist/builtins/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Yu as m}from"../chunk-
|
|
2
|
+
import{Yu as m}from"../chunk-tzd81m7r.js";import"../chunk-ktpc2rc4.js";import"../chunk-2aydpj2n.js";import"../chunk-nwfa5766.js";import"../chunk-9p45wwff.js";import"../chunk-m911bf2b.js";import"../chunk-zwdargbj.js";import"../chunk-a50svyjn.js";import"../chunk-7aph6rw7.js";import"../chunk-y92w0240.js";import"../chunk-v9199ywv.js";import"../chunk-a4zj7qpt.js";import"../chunk-zepv7y44.js";import"../chunk-v0s45ek4.js";import"../chunk-2rd0ykrg.js";import"../chunk-6sx4d083.js";import"../chunk-r7d26vjj.js";import"../chunk-ccgmxmjk.js";import"../chunk-593x2ccf.js";import"../chunk-1bzckhs2.js";import"../chunk-a2xzs4kd.js";import"../chunk-fk0m346m.js";import"../chunk-npj33yqb.js";import"../chunk-dtcj9r7p.js";import"../chunk-5tv1swsr.js";import"../chunk-8g0jb444.js";import"../chunk-h1035wzj.js";import"../chunk-ms6793rw.js";import"../chunk-zr8631g4.js";import"../chunk-c9f5k95v.js";import"../chunk-9fj7hpwa.js";import"../chunk-rdaavfsg.js";import"../chunk-e792k31a.js";import"../chunk-tavtph8x.js";import"../chunk-0t75nh4z.js";import"../chunk-exfw0aqe.js";import"../chunk-fh1d8bxd.js";import"../chunk-w719zps0.js";import"../chunk-eghdf4qq.js";import"../chunk-xgmza98t.js";import"../chunk-zxxt0c9q.js";import"../chunk-xqq1vxb6.js";import"../chunk-xw9skf0n.js";import"../chunk-t7ghqd7e.js";import"../chunk-xmjedbkt.js";import"../chunk-1zgsgk4b.js";import"../chunk-xzjrrd36.js";import"../chunk-gcsqn7x9.js";import"../chunk-7t4hkmxb.js";import"../chunk-pjaa8q7x.js";import"../chunk-b0w1cm1s.js";import"../chunk-jm460jxs.js";import"../chunk-srq3dkj8.js";import"../chunk-h6s1thg6.js";import"../chunk-yssvz8zs.js";import{SB as a}from"../chunk-rkr7cgs8.js";import{TB as d}from"../chunk-md4j8nch.js";import{UB as k}from"../chunk-qvmrwh8n.js";import{VB as e}from"../chunk-3rgj1qn6.js";import{WB as j}from"../chunk-4ep9gk7d.js";import{XB as l}from"../chunk-zvyc82ke.js";import{YB as g}from"../chunk-1w3354fv.js";import{ZB as h,_B as i}from"../chunk-sd2c11bp.js";import{$B as f}from"../chunk-sk1gmrr8.js";import"../chunk-hkjq64we.js";import{bC as c}from"../chunk-9ezvda3j.js";import{cC as b}from"../chunk-c23697dp.js";import"../chunk-r6sb1sm4.js";import"../chunk-p5j0686t.js";import"../chunk-bg1xym0q.js";import"../chunk-08ncwhv7.js";import"../chunk-6jhqq7es.js";import"../chunk-r1m8g439.js";import"../chunk-6r70w54p.js";export{m as registerBuiltins,i as preloadIconCollection,j as getTooltipRuntime,l as TransitionGroupBuiltin,k as SuspenseBuiltin,e as StxToastBuiltin,f as StxModalBuiltin,d as StxLoadingIndicatorBuiltin,a as StxLinkBuiltin,b as StxImageBuiltin,g as StxDrawerBuiltin,c as SafeImageBuiltin,h as IconBuiltin};
|
package/dist/caching.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{ds as a,es as b,fs as c,gs as d,hs as e,is as f,js as g,ks as h,ls as i,ms as j,ns as k}from"./chunk-
|
|
2
|
+
import{ds as a,es as b,fs as c,gs as d,hs as e,is as f,js as g,ks as h,ls as i,ms as j,ns as k}from"./chunk-hz7qnpx1.js";import"./chunk-tzd81m7r.js";import"./chunk-ktpc2rc4.js";import"./chunk-2aydpj2n.js";import"./chunk-nwfa5766.js";import"./chunk-9p45wwff.js";import"./chunk-m911bf2b.js";import"./chunk-zwdargbj.js";import"./chunk-a50svyjn.js";import"./chunk-7aph6rw7.js";import"./chunk-y92w0240.js";import"./chunk-v9199ywv.js";import"./chunk-a4zj7qpt.js";import"./chunk-zepv7y44.js";import"./chunk-v0s45ek4.js";import"./chunk-2rd0ykrg.js";import"./chunk-6sx4d083.js";import"./chunk-r7d26vjj.js";import"./chunk-ccgmxmjk.js";import"./chunk-593x2ccf.js";import"./chunk-1bzckhs2.js";import"./chunk-a2xzs4kd.js";import"./chunk-fk0m346m.js";import"./chunk-npj33yqb.js";import"./chunk-dtcj9r7p.js";import"./chunk-5tv1swsr.js";import"./chunk-8g0jb444.js";import"./chunk-h1035wzj.js";import"./chunk-ms6793rw.js";import"./chunk-zr8631g4.js";import"./chunk-c9f5k95v.js";import"./chunk-9fj7hpwa.js";import"./chunk-rdaavfsg.js";import"./chunk-e792k31a.js";import"./chunk-tavtph8x.js";import"./chunk-0t75nh4z.js";import"./chunk-exfw0aqe.js";import"./chunk-fh1d8bxd.js";import"./chunk-w719zps0.js";import"./chunk-eghdf4qq.js";import"./chunk-xgmza98t.js";import"./chunk-zxxt0c9q.js";import"./chunk-xqq1vxb6.js";import"./chunk-xw9skf0n.js";import"./chunk-t7ghqd7e.js";import"./chunk-xmjedbkt.js";import"./chunk-1zgsgk4b.js";import"./chunk-xzjrrd36.js";import"./chunk-gcsqn7x9.js";import"./chunk-7t4hkmxb.js";import"./chunk-pjaa8q7x.js";import"./chunk-b0w1cm1s.js";import"./chunk-jm460jxs.js";import"./chunk-srq3dkj8.js";import"./chunk-h6s1thg6.js";import"./chunk-yssvz8zs.js";import"./chunk-rkr7cgs8.js";import"./chunk-md4j8nch.js";import"./chunk-qvmrwh8n.js";import"./chunk-3rgj1qn6.js";import"./chunk-4ep9gk7d.js";import"./chunk-zvyc82ke.js";import"./chunk-1w3354fv.js";import"./chunk-sd2c11bp.js";import"./chunk-sk1gmrr8.js";import"./chunk-hkjq64we.js";import"./chunk-9ezvda3j.js";import"./chunk-c23697dp.js";import"./chunk-r6sb1sm4.js";import"./chunk-p5j0686t.js";import"./chunk-bg1xym0q.js";import"./chunk-08ncwhv7.js";import"./chunk-6jhqq7es.js";import"./chunk-r1m8g439.js";import"./chunk-6r70w54p.js";export{a as templateCache,b as readFileCached,d as invalidateFileCacheByDir,c as invalidateFileCache,k as hashFilePath,f as getCachedSignalsRuntime,g as getCachedRouterScript,h as clearDevCaches,i as checkCache,j as cacheTemplate,e as __setSignalsGeneratorsForTest};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ev as H,Ku as g,Ov as x,nu as O}from"./chunk-
|
|
2
|
+
import{Ev as H,Ku as g,Ov as x,nu as O}from"./chunk-tzd81m7r.js";import{Zv as R}from"./chunk-nwfa5766.js";import b from"path";var v={enabled:!0,bufferSize:16384,strategy:"auto",timeout:30000},M=/<!-- @section:([\w-]+) -->([\s\S]*?)<!-- @endsection:\1 -->/g;var T=/<!-- @suspense:([\w-]+) -->([\s\S]*?)<!-- @endsuspense:\1 -->/g;function f(q){let B=[],Q=0,G;T.lastIndex=0;while((G=T.exec(q))!==null){if(G.index>Q){let X=q.slice(Q,G.index);if(X.trim())B.push({type:B.length===0?"shell":"content",content:X})}let J=G[1],K=G[2];B.push({type:"suspense",name:J,content:K}),Q=G.index+G[0].length}if(Q<q.length){let J=q.slice(Q);if(J.trim())B.push({type:B.length===0?"shell":"content",content:J})}if(B.length===0)B.push({type:"shell",content:q});return B}async function r(q,B={},Q={}){let G={...g,...Q,streaming:{...v,...Q.streaming}},J=G.streaming?.bufferSize||16384;return new ReadableStream({async start(K){try{let X=await Bun.file(q).text(),z=X.match(/<script\b[^>]*\bserver\b[^>]*>([\s\S]*?)<\/script>/i),L=z?z[1]:"",Y=X.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),j={...B,__filename:q,__dirname:b.dirname(q)};if(L.trim())await R(L,j,q);let D=f(Y),$=new Set;if(!D.some((w)=>w.type==="suspense")){let w=G.streaming?.strategy||"auto",U=new RegExp(M.source,"g");if(!(w!=="manual"&&U.test(Y))){let F=await H(Y,j,q,G,$);for(let V=0;V<F.length;V+=J)K.enqueue(F.slice(V,V+J)),await new Promise((W)=>setTimeout(W,0))}else{let F=[],V=new RegExp(M.source,"g"),W;while((W=V.exec(Y))!==null)F.push({name:W[1],content:W[2],start:W.index,end:W.index+W[0].length});let y=0;for(let A of F){if(A.start>y){let k=Y.slice(y,A.start);if(k.trim()){let E=await H(k,j,q,G,$);K.enqueue(E),await new Promise((S)=>setTimeout(S,0))}}let I=await H(A.content,j,q,G,$);K.enqueue(I),await new Promise((k)=>setTimeout(k,0)),y=A.end}if(y<Y.length){let A=Y.slice(y);if(A.trim()){let I=await H(A,j,q,G,$);K.enqueue(I)}}}}else{let w=new Map;for(let Z of D)if(Z.type==="shell"||Z.type==="content"){let F=await H(Z.content,j,q,G,$);K.enqueue(F)}else if(Z.type==="suspense"&&Z.name){let F=`stx-suspense-${Z.name}`;K.enqueue(`<div id="${F}" data-suspense="${Z.name}" style="display:contents;">
|
|
3
3
|
<template data-suspense-fallback>Loading...</template>
|
|
4
4
|
</div>`),w.set(Z.name,H(Z.content,j,q,G,$))}K.enqueue(`
|
|
5
5
|
<script>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{ah as b}from"./chunk-sn7pmfn4.js";import{bh as f,dh as u,eh as v,gh as d,hh as p}from"./chunk-a33kr9b0.js";import{ih as y}from"./chunk-ydhza16t.js";import{jh as S}from"./chunk-r738cjs3.js";import{kh as F}from"./chunk-0fsrhs3d.js";import{lh as P}from"./chunk-0m53nxvy.js";import{Lz as D}from"./chunk-
|
|
2
|
+
import{ah as b}from"./chunk-sn7pmfn4.js";import{bh as f,dh as u,eh as v,gh as d,hh as p}from"./chunk-a33kr9b0.js";import{ih as y}from"./chunk-ydhza16t.js";import{jh as S}from"./chunk-r738cjs3.js";import{kh as F}from"./chunk-0fsrhs3d.js";import{lh as P}from"./chunk-0m53nxvy.js";import{Lz as D}from"./chunk-0t75nh4z.js";var{Glob:m}=globalThis.Bun;import{cpSync as h,existsSync as T,mkdirSync as j,readFileSync as g,readdirSync as s,rmSync as r,statSync as n,unlinkSync as a,writeFileSync as A}from"fs";import{dirname as i,join as H,relative as o}from"path";import w from"process";import e from"bun-plugin-stx";async function Aq(q){let N=Date.now(),V=q.pagesDir??"pages",K=q.outDir??"dist",Q=q.publicDir??"public";if(!q.noClean)r(K,{recursive:!0,force:!0});j(K,{recursive:!0});let B=new m(`${V}/**/*.stx`),Z=await Array.fromAsync(B.scan("."));if(Z.length===0)throw Error(`No .stx files found in ${V}/`);let _=await Bun.build({entrypoints:Z,outdir:K,plugins:[e()],naming:{entry:"[name].[ext]"}});if(!_.success)throw console.error(_.logs),Error("Build failed");qq(K);let $=z(K).filter((G)=>G.endsWith(".html")),X=f(q,w.cwd()),M=new Set($.map(I));for(let G of $){let E=H(K,G),x=g(E,"utf8"),J=I(G),O=X?X.locales:[q.seo?.locale?.split(/[_-]/)[0]??"en"];for(let W of O){let Y=x;if(Y=Kq(Y),X)Y=u(Y,X,W);if(Y=await D(Y,w.cwd()),Y=F(Y,q,q.pages?.[J],J),X)Y=Nq(Y,q,X,W,J),Y=Qq(Y,W,X.defaultLocale,M);if(Y=b(Y,q),Y=Vq(Y),X)Y=Y.replace(/<\/body>/i,`${p(X,W)}
|
|
3
3
|
</body>`);if(q.spa!==!1)Y=await S(Y,q.router);let C=X?l(J,W,X.defaultLocale):G,L=H(K,C);if(j(t(L),{recursive:!0}),A(L,Y),X&&W!==X.defaultLocale&&C!==G);}}if(T(Q))h(Q,K,{recursive:!0});let R=H(K,"404.html");if(!T(R)&&T(H(K,"index.html"))){let G=g(H(K,"index.html"),"utf8").replace(/<title>[^<]*<\/title>/i,`<title>404 \u2014 ${Xq(q.name)}</title>`);A(R,G)}if(q.sitemap!==!1){let G=[],E=$.filter((J)=>J!=="404.html").map(I),x=X?X.locales:[null];for(let J of E){let O=q.pages?.[J];for(let W of x){let Y=W&&X?v(J,W,X.defaultLocale):J;G.push({path:Y,page:O})}}A(H(K,"sitemap.xml"),P(q,G))}let U=y(q);if(U!==null)A(H(K,"robots.txt"),U);let c=$.map(I);return{outDir:K,pages:c,durationMs:Date.now()-N}}function t(q){return i(q)}function l(q,N,V){let K=v(q,N,V);if(K==="/")return"index.html";let Q=K.replace(/^\//,"").replace(/\/$/,"");if(!Q.includes("/")){if(N!==V&&Q===N)return`${N}/index.html`;return`${Q}.html`}return`${Q}.html`.replace(/\.html\.html$/,".html")}function I(q){if(q==="index.html")return"/";return`/${q.replace(/\.html$/,"").replace(/\/index$/,"")}`}function z(q,N=q){let V=[];if(!T(q))return V;for(let K of s(q,{withFileTypes:!0})){let Q=H(q,K.name);if(K.isDirectory())V.push(...z(Q,N));else V.push(o(N,Q))}return V}function qq(q){for(let N of z(q)){if(!/^chunk-.*\.js(?:\.map)?$/.test(N))continue;let V=H(q,N);try{if(n(V).size===0)a(V)}catch{}}}function Kq(q){return q.replace(/<script[^>]*src=["']\.\/chunk-[^"']*\.js["'][^>]*><\/script>\s*/g,"")}function Nq(q,N,V,K,Q){if(!V)return q;if(/<html\b[^>]*\blang=/i.test(q))q=q.replace(/<html\b([^>]*)\blang="[^"]*"/i,`<html$1lang="${K}"`);else q=q.replace(/<html\b([^>]*)>/i,`<html$1 lang="${K}">`);let B=`${N.url.replace(/\/$/,"")}${v(Q,K,V.defaultLocale)}`;if(/<link rel="canonical"/.test(q))q=q.replace(/<link rel="canonical"[^>]*>/,`<link rel="canonical" href="${k(B)}">`);let Z=K.includes("_")||K.includes("-")?K:K.toLowerCase();if(/<meta property="og:locale"/.test(q))q=q.replace(/<meta property="og:locale"[^>]*>/,`<meta property="og:locale" content="${k(Z)}">`);if(/<meta property="og:url"/.test(q))q=q.replace(/<meta property="og:url"[^>]*>/,`<meta property="og:url" content="${k(B)}">`);let _=d(N.url,Q,V);if(!q.includes("hreflang="))q=q.replace(/<link rel="canonical"[^>]*>/,($)=>`${_}
|
|
4
4
|
${$}`);return q}function k(q){return q.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function Qq(q,N,V,K){if(N===V)return q;return q.replace(/<a\b([^>]*?)\bhref="(\/[^"]*)"([^>]*)>/gi,(Q,B,Z,_)=>{if(Z.startsWith("//"))return Q;if(Z===`/${N}`||Z===`/${N}/`||Z.startsWith(`/${N}/`))return Q;let $=Z.match(/^(\/[^?#]*)(.*)$/);if(!$)return Q;let[,X,M]=$,R=X==="/"?"/":X.replace(/\/$/,"");if(!K.has(R))return Q;let U=R==="/"?`/${N}/`:`/${N}${R}`;return`<a${B}href="${U}${M}"${_}>`})}function Vq(q){if(/<main\b/i.test(q)||/\bdata-stx-content\b/i.test(q))return q;let N=q.match(/<body\b[^>]*>/i),V=q.search(/<\/body\s*>/i);if(!N||V<0)return q;let K=N.index+N[0].length,Q=q.slice(K,V),B=0,Z=[...Q.matchAll(/<\/nav>/gi)];if(Z.length>0){let U=Z[Z.length-1];B=U.index+U[0].length}let _=Q.length,$=Q.search(/<footer\b/i);if($!==-1)_=Math.min(_,$);let X=Q.search(/<script\b[^>]*data-stx-(?:theme-toggle|reparent-progress)\b/i);if(X!==-1)_=Math.min(_,X);if(_<=B)return q;let M=Q.slice(B,_);if(!M.trim())return q;let R=`${Q.slice(0,B)}
|
|
5
5
|
<main>${M}</main>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Si as E}from"./chunk-
|
|
2
|
+
import{Si as E}from"./chunk-g9gksn68.js";import{el as D}from"./chunk-31w1xfs1.js";import{It as N}from"./chunk-r3cxnszy.js";import{jE as x}from"./chunk-6r70w54p.js";import C from"fs";import J from"path";var{serve:v}=globalThis.Bun;var y={".js":"application/javascript",".mjs":"application/javascript",".css":"text/css",".json":"application/json",".html":"text/html",".txt":"text/plain",".xml":"application/xml",".pdf":"application/pdf",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".avif":"image/avif",".svg":"image/svg+xml",".ico":"image/x-icon",".bmp":"image/bmp",".mp4":"video/mp4",".webm":"video/webm",".ogg":"audio/ogg",".mp3":"audio/mpeg",".wav":"audio/wav",".woff":"font/woff",".woff2":"font/woff2",".ttf":"font/ttf",".otf":"font/otf",".eot":"application/vnd.ms-fontobject"};async function c(O={}){let Z=J.resolve(O.outputDir||".output"),k=O.port||3000,U=D(Z);if(!U)console.error("[stx] No build manifest found. Run `stx build` first."),process.exit(1);console.log(`[stx] Production server loading ${U.routes.length} routes...`);let V=new Map,Y=new Map,_=new Map;for(let w of U.routes)try{let K=J.join(Z,w.compiledPath),A=JSON.parse(await Bun.file(K).text());V.set(w.pattern,A),_.set(w.pattern,N(A.html));let W=J.join(Z,w.fragmentPath);if(await Bun.file(W).exists())Y.set(w.pattern,await Bun.file(W).text())}catch(K){console.warn(`[stx] Failed to load route ${w.pattern}:`,K)}let $=new Map,F=[];for(let w of U.routes)if(w.hasParams){let K=[],A=w.pattern.replace(/:([^/]+)/g,(W,G)=>{return K.push(G),"([^/]+)"});F.push({regex:new RegExp(`^${A}$`),route:w,paramNames:K})}else $.set(w.pattern,w);let S=v({port:k,async fetch(w){let A=new URL(w.url).pathname;if(O.onRequest){let j=await O.onRequest(w);if(j)return j}if(O.apiRoutes?.[A])return O.apiRoutes[A](w);if((w.method==="GET"||w.method==="HEAD")&&A!=="/"){let j=J.resolve(Z,"public"),z;try{z=decodeURIComponent(A)}catch{z=A}if(!z.includes("\x00")){let B=J.resolve(j,`.${z}`);if(B===j||B.startsWith(`${j}${J.sep}`))try{if(C.existsSync(B)&&C.statSync(B).isFile()){let H=J.extname(B).toLowerCase(),I=y[H]||"application/octet-stream",b=A.startsWith("/__stx/")||/\.[0-9a-f]{8}\./.test(A);return new Response(Bun.file(B),{headers:{"Content-Type":I,"Cache-Control":b?"public, max-age=31536000, immutable":"public, max-age=3600"}})}}catch{}}}let W=w.headers.get("X-STX-Router")==="true",G=null,L={};if(G=$.get(A)||null,!G)for(let{regex:j,route:z,paramNames:B}of F){let X=A.match(j);if(X){G=z,B.forEach((H,I)=>{L[H]=X[I+1]});break}}if(!G){let j=$.get("/404")||null;if(j){let z=V.get(j.pattern);if(z)return new Response(z.html,{status:404,headers:{"Content-Type":"text/html"}})}return new Response("Not Found",{status:404})}if(W){let j=Y.get(G.pattern);if(j){let z=_.get(G.pattern);return new Response(j,{headers:{"Content-Type":"text/html","X-STX-Fragment":"true",...z?{"X-STX-Layout":z.layout,"X-STX-Layout-Group":z.group}:{},"Cache-Control":"no-cache"}})}}let Q=V.get(G.pattern);if(!Q){let j=$.get("/500")||null;if(j){let z=V.get(j.pattern);if(z)return new Response(z.html,{status:500,headers:{"Content-Type":"text/html"}})}return new Response("Internal Server Error",{status:500})}if(!Q.hasServerScripts&&Object.keys(Q.placeholders).length===0)return new Response(Q.html,{headers:{"Content-Type":"text/html","Cache-Control":"public, max-age=60"}});try{let{html:j,boundaries:z}=await E(Q,{params:L,request:w});if(z&&z.length>0){let{renderStreamingPage:B,streamToResponse:X}=await import("././streaming.js");return X(B(j,z,{timeoutMs:30000}),{headers:{"Cache-Control":"no-cache"}})}return new Response(j,{headers:{"Content-Type":"text/html","Cache-Control":"no-cache"}})}catch(j){return console.error(`[stx] Hydration error for ${A}:`,j),new Response(Q.html,{headers:{"Content-Type":"text/html"}})}}});return console.log(`[stx] Production server running at http://localhost:${k}`),console.log(`[stx] Serving ${U.routes.length} routes (${V.size} pre-loaded)`),{port:k,stop:()=>S.stop()}}
|
|
3
3
|
export{c as Qi};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ev as y}from"./chunk-
|
|
2
|
+
import{Ev as y}from"./chunk-tzd81m7r.js";import{Zv as x}from"./chunk-nwfa5766.js";import{kB as I}from"./chunk-7t4hkmxb.js";import g from"crypto";import w from"path";class h{store=new Map;async get(B){let U=this.store.get(B);if(!U||U.expires<=Date.now()){if(U)this.store.delete(B);return null}return{...U.data}}async set(B,U,A){this.store.set(B,{data:{...U},expires:Date.now()+A*1000})}async delete(B){this.store.delete(B)}}async function l(B,U,A){let Q={},z={},b=await A.get(B);if(b)Object.assign(Q,b);let E={id:B,data:Q,get(G){return Q[G]},set(G,O){Q[G]=O,W()},delete(G){delete Q[G],W()},clear(){Object.keys(Q).forEach((G)=>delete Q[G]),W()},has(G){return G in Q},flash(G,O){if(O!==void 0){z[G]=O;return}let R=z[G];return delete z[G],R},regenerate(){let G=B;B=u(),E.id=B,A.delete(G),W()},destroy(){A.delete(B),Object.keys(Q).forEach((G)=>delete Q[G])}};function W(){A.set(B,{...Q,__flash:z},U)}return W(),E}function u(){return g.randomBytes(32).toString("hex")}function p(B){if(!B)return{};return B.split(";").reduce((U,A)=>{let[Q,...z]=A.trim().split("=");if(Q)U[Q]=decodeURIComponent(z.join("="));return U},{})}function v(B,U,A={}){let Q=`${encodeURIComponent(B)}=${encodeURIComponent(U)}`;if(A.maxAge!==void 0)Q+=`; Max-Age=${A.maxAge}`;if(A.expires)Q+=`; Expires=${A.expires.toUTCString()}`;if(A.path)Q+=`; Path=${A.path}`;if(A.domain)Q+=`; Domain=${A.domain}`;if(A.secure)Q+="; Secure";if(A.httpOnly)Q+="; HttpOnly";if(A.sameSite)Q+=`; SameSite=${A.sameSite}`;return Q}function d(){return g.randomBytes(32).toString("hex")}function r(B,U){if(!B||!U)return!1;try{return g.timingSafeEqual(Buffer.from(B),Buffer.from(U))}catch{return!1}}async function i(B,U={},A={}){let Q=A.viewsDir||"./views",z=A.layoutsDir||"./layouts",b=!B.includes("<")&&!B.includes("@"),E,W;if(b){if(W=w.resolve(Q,B),!W.endsWith(".stx"))W+=".stx";if(!await Bun.file(W).exists())return new Response(`Template not found: ${B}`,{status:500});E=await Bun.file(W).text()}else E=B,W="inline-template.stx";let G={...U,props:U,__filename:W,__dirname:w.dirname(W)};if(A.ctx)G.csrf_token=A.ctx.csrfToken,G.csrf_field=`<input type="hidden" name="_token" value="${A.ctx.csrfToken}">`,G.old=A.ctx.old,G.errors=A.ctx.errors,G.session=A.ctx.session,G.user=A.ctx.user(),G.isAuthenticated=A.ctx.isAuthenticated();let O=E.match(/<script\s+server\b[^>]*>([\s\S]*?)<\/script>/i);if(O){let H=O[1];E=E.replace(/<script\s+server\b[^>]*>[\s\S]*?<\/script>/gi,""),await x(H,G,W)}let R={layoutsDir:z,...A.stxOptions},P=await y(E,G,W,R,new Set),C=new Headers({"Content-Type":"text/html; charset=utf-8"});if(A.ctx)A.ctx.responseHeaders.forEach((H,T)=>{C.set(T,H)});return new Response(P,{headers:C})}function e(B={}){let{viewsDir:U="./views",layoutsDir:A="./layouts",defaultLayout:Q,sessionSecret:z=g.randomBytes(32).toString("hex"),sessionCookieName:b="stx_session",sessionTtl:E=86400,stxOptions:W={},csrfCookieName:G="csrf_token",csrfEnabled:O=!0}=B,R=B.sessionStore??new h,q=[],P=[];function C(j,J){for(let K of q){if(K.method!==j&&K.method!=="*")continue;let Y=[],V=K.pattern.replace(/\/:(\w+)/g,(Z,X)=>{return Y.push(X),"/([^/]+)"}).replace(/\//g,"\\/"),L=new RegExp(`^${V}$`),_=J.match(L);if(_){let Z={};return Y.forEach((X,N)=>{Z[X]=_[N+1]}),{route:K,params:Z}}}return null}async function H(j,J){let K=new URL(j.url),Y=p(j.headers.get("Cookie")),V=new Headers,L=[],_=Y[b];if(!_)_=u(),L.push(v(b,_,{httpOnly:!0,secure:K.protocol==="https:",sameSite:"Lax",path:"/",maxAge:E}));let Z=await l(_,E,R),X=Z.get("_csrf");if(!X)X=d(),Z.set("_csrf",X);let N={};K.searchParams.forEach(($,F)=>{N[F]=$});let f=Z.flash("_errors")||{},k=Z.flash("_old_input")||{},m={request:j,url:K,params:J,query:N,session:Z,csrfToken:X,cookies:Y,responseHeaders:V,errors:f,async formData(){let $=await j.formData(),F={};return $.forEach((D,c)=>{F[c]=D}),F},async json(){return await j.json()},setCookie($,F,D={}){L.push(v($,F,D))},flash($,F){Z.flash($,F)},getFlash($){return Z.flash($)},old($){return k[$]||""},isAuthenticated(){return Z.has("user")},user(){return Z.get("user")}};if(L.length>0)L.forEach(($)=>{V.append("Set-Cookie",$)});return m}let T=async(j,J)=>{if(["GET","HEAD","OPTIONS"].includes(j.request.method))return J();if(!O)return J();let Y=(await j.request.clone().formData().catch(()=>new FormData)).get("_token"),V=j.request.headers.get("X-CSRF-Token"),L=Y||V,_=j.session.get("_csrf");if(!L||!_||!r(L,_))return new Response("CSRF token mismatch",{status:419});return J()};async function S(j){let J=new URL(j.url),K=j.method,Y=C(K,J.pathname);if(!Y)return new Response("Not Found",{status:404});let V=await H(j,Y.params),L=[...P,T,...Y.route.middleware],_=0,Z=async()=>{if(_<L.length){let X=L[_++];return X(V,Z)}return Y.route.handler(V)};try{let X=await Z();return V.responseHeaders.forEach((N,f)=>{X.headers.set(f,N)}),X}catch(X){return I.log(X instanceof Error?X:Error(String(X)),{handler:"request"},"error"),new Response("Internal Server Error",{status:500})}}function M(j,J,K,Y=[]){q.push({method:j,pattern:J,handler:K,middleware:Y})}return{fetch:S,get(j,J,K=[]){return M("GET",j,J,K),this},post(j,J,K=[]){return M("POST",j,J,K),this},put(j,J,K=[]){return M("PUT",j,J,K),this},delete(j,J,K=[]){return M("DELETE",j,J,K),this},patch(j,J,K=[]){return M("PATCH",j,J,K),this},use(j){return P.push(j),this},async render(j,J={},K){return i(j,J,{viewsDir:U,layoutsDir:A,stxOptions:W,ctx:K})},redirect(j,J=302){return new Response(null,{status:J,headers:{Location:j}})},back(j,J,K){if(J)j.session.flash("_errors",J);if(K)j.session.flash("_old_input",K);let Y=j.request.headers.get("Referer")||"/";return new Response(null,{status:302,headers:{Location:Y}})},listen(j=3000){return Bun.serve({port:j,fetch:S})}}}
|
|
3
3
|
export{h as ug,i as vg,e as wg};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ii as S}from"./chunk-
|
|
2
|
+
import{Ii as S}from"./chunk-mqnymcn5.js";import{Ji as g}from"./chunk-8xbj6dqe.js";import{cl as A,dl as D}from"./chunk-31w1xfs1.js";import{Ts as C,Us as P}from"./chunk-fyq5573f.js";import{Ht as f}from"./chunk-r3cxnszy.js";import{Lu as R}from"./chunk-tzd81m7r.js";import{Bz as b}from"./chunk-tavtph8x.js";import{Lz as y}from"./chunk-0t75nh4z.js";import V from"fs";import H from"path";var d=new Set([".DS_Store","Thumbs.db","desktop.ini",".gitkeep",".gitignore"]);function n(J,K){let X=0,z=0;if(!V.existsSync(J))return{copied:X,bytes:z};function Q(E,O){let U=V.readdirSync(E,{withFileTypes:!0});for(let W of U){if(d.has(W.name))continue;let G=H.join(E,W.name),Y=H.join(O,W.name);if(W.isDirectory())V.mkdirSync(Y,{recursive:!0}),Q(G,Y);else if(W.isFile()){if(V.existsSync(Y))continue;V.copyFileSync(G,Y),X++,z+=V.statSync(Y).size}}}return Q(J,K),{copied:X,bytes:z}}async function zq(J={}){let K=Date.now(),X=H.resolve(J.root||process.cwd()),z=H.resolve(X,J.outputDir||".output");console.log("[stx build] Starting production build...");let Q={};try{Q=await R()}catch{}let E=J.componentsDir??Q.componentsDir??"components",O=J.partialsDir??Q.partialsDir??"partials",U=J.layoutsDir??Q.layoutsDir??"layouts",W=J.publicDir??Q.publicDir??"public",G=Q.app?.head||{},Y=Q.router?.container||"main";if(V.existsSync(z))V.rmSync(z,{recursive:!0});let h=[H.join(z,"public","__stx"),H.join(z,"public","assets"),H.join(z,"server","pages"),H.join(z,"server","fragments")];for(let F of h)V.mkdirSync(F,{recursive:!0});console.log("[stx build] Discovering routes...");let I=g(X),m=["components","layouts","partials"],k=I.filter((F)=>{return!m.some((q)=>F.pattern.startsWith(`/${q}/`)||F.pattern===`/${q}`)});console.log(`[stx build] Found ${k.length} page routes (${I.length-k.length} non-page files excluded)`),console.log("[stx build] Generating shared assets...");let $=C(J.debug),Z=P();await Bun.write(H.join(z,"public","__stx",$.filename),$.content),await Bun.write(H.join(z,"public","__stx",Z.filename),Z.content),console.log(`[stx build] Runtime: ${$.filename} (${($.content.length/1024).toFixed(1)}KB)`),console.log(`[stx build] Router: ${Z.filename} (${(Z.content.length/1024).toFixed(1)}KB)`),console.log("[stx build] Compiling templates...");let v=[],N=[];for(let F of k)try{let q=await S(F.filePath,F.pattern,{componentsDir:E,partialsDir:O,layoutsDir:U,debug:J.debug});if(v.push(q),q.html=q.html.replace(/runtime\.__STX_HASH__\.js/g,$.filename).replace(/router\.__STX_HASH__\.js/g,Z.filename),q.html=b(q.html,G,{bodyScripts:[`<script src="/__stx/${Z.filename}"></script>`]}),!/<body[^>]*\bdata-stx=/.test(q.html)){let B=q.html.match(/<(?!body\b)[a-zA-Z][a-zA-Z0-9-]*\b[^>]*?\s(data-stx="[^"]+")[^>]*>/);if(B&&B[1]){let x=B[1];q.html=q.html.replace(" "+x,""),q.html=q.html.replace(/<body([^>]*)>/,`<body$1 ${x}>`)}}q.html=q.html.replace(/<style data-crosswind="generated">[\s\S]*?<\/style>\s*/g,""),q.html=await y(q.html),q.fragment=f(q.html,Y);let w=F.pattern==="/"?"index":F.pattern.slice(1).replace(/\//g,"-").replace(/[[\]]/g,"_"),M=H.join("server","pages",`${w}.compiled.json`),j=H.join("server","fragments",`${w}.html`);await Bun.write(H.join(z,M),JSON.stringify(q,null,2)),await Bun.write(H.join(z,j),q.fragment),N.push({pattern:F.pattern,compiledPath:M,fragmentPath:j,isDynamic:q.hasServerScripts,hasParams:F.pattern.includes(":")||F.pattern.includes("[")}),console.log(`[stx build] \u2713 ${F.pattern}`)}catch(q){console.error(`[stx build] \u2717 ${F.pattern}:`,q instanceof Error?q.message:q)}let _=H.resolve(X,W);if(V.existsSync(_)){let{copied:F,bytes:q}=n(_,H.join(z,"public"));if(F>0)console.log(`[stx build] Copied ${F} public asset${F===1?"":"s"} (${(q/1024).toFixed(1)}KB) from ${W}/`)}let L={runtime:$.filename,router:Z.filename},l=A(N,L,z);D(l,z);let T=Date.now()-K;return console.log(`
|
|
3
3
|
[stx build] Done in ${T}ms \u2014 ${v.length} pages compiled`),{pageCount:v.length,assets:L,outputDir:z,duration:T}}
|
|
4
4
|
export{zq as Hi};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{$b as S,_b as T,ac as u}from"./chunk-acry1mfc.js";import{gc as M}from"./chunk-fnt3srfr.js";import{hc as g}from"./chunk-at9v5saf.js";import{mc as k}from"./chunk-
|
|
2
|
+
import{$b as S,_b as T,ac as u}from"./chunk-acry1mfc.js";import{gc as M}from"./chunk-fnt3srfr.js";import{hc as g}from"./chunk-at9v5saf.js";import{mc as k}from"./chunk-8fhv0xaw.js";import{Bc as H,sc as P,uc as U,vc as F,wc as w}from"./chunk-64bwamng.js";import{Cc as v}from"./chunk-1vz36hw3.js";import{jd as L,ld as C}from"./chunk-nacsxc1r.js";import{nd as A}from"./chunk-vg97xcma.js";import{Jd as R}from"./chunk-22xxm2x5.js";import{Yd as I}from"./chunk-xecnz132.js";import{ke as W,le as _}from"./chunk-9pzdyd8q.js";import{jE as f}from"./chunk-6r70w54p.js";async function a(E,z){let J=await L(E);W(E,J);let $=A(E.config,J);_(E,$),console.log(` Found ${J.length} story files`);let X=typeof z.host==="string"?z.host:z.host===!0?"0.0.0.0":"localhost",Y=new g(E.root),O=new I(E.root),j=new R(E.root),D=P(),Z=Bun.serve({port:z.port,hostname:X,fetch:async(K,Q)=>{let B=new URL(K.url).pathname;if(B==="/__hmr"){if(Q.upgrade(K,{data:{isHmr:!0}}))return;return new Response("WebSocket upgrade failed",{status:400})}if(B.startsWith("/api/"))return q(E,B,K,{presetsManager:Y,bookmarksManager:O,analyticsTracker:j});return b(E,B,z.port)},websocket:{open(K){D.open(K)},close(K){D.close(K)},message(K,Q){D.message(K,Q)}}}),G=`http://${X}:${z.port}`,V=C(E,async(K,Q)=>{console.log(` [${K}] ${Q.relativePath}`);let N=await L(E);W(E,N);let B=A(E.config,N);if(_(E,B),K==="add")F(Q.id,{fileName:Q.fileName});else if(K==="unlink")w(Q.id);else U(Q.id,{fileName:Q.fileName})});if(z.open){let K=G;try{let{exec:Q}=await import("child_process"),N=process.platform;Q(`${N==="darwin"?"open":N==="win32"?"start":"xdg-open"} ${K}`)}catch{}}return{server:Z,url:G,close:async()=>{V(),Z.stop()}}}async function q(E,z,J,$){let{presetsManager:X,bookmarksManager:Y,analyticsTracker:O}=$;if(z==="/api/stories")return Response.json({files:E.storyFiles.map((j)=>({id:j.id,fileName:j.fileName,relativePath:j.relativePath,treePath:j.treePath})),tree:E.tree});if(z.startsWith("/api/story/")){let j=z.slice(11),D=E.storyFiles.find((Z)=>Z.id===j);if(!D)return new Response("Story not found",{status:404});try{let Z=await Bun.file(D.path).text();return Response.json({id:D.id,fileName:D.fileName,relativePath:D.relativePath,content:Z})}catch{return new Response("Error reading story",{status:500})}}if(z==="/api/config")return Response.json({theme:E.config.theme,responsivePresets:E.config.responsivePresets,backgroundPresets:E.config.backgroundPresets});if(z.startsWith("/api/render/")){let j=new URL(J.url),D=z.slice(12).split("/"),Z=D[0],G=D[1]||"default",V,K=j.searchParams.get("props");if(K)try{V=JSON.parse(K)}catch{}let Q=E.storyFiles.find((N)=>N.id===Z);if(!Q)return new Response("Story not found",{status:404});try{let N=await k(E,Q,G,V);return Response.json({html:N.html,css:N.css,js:N.js,errors:N.errors,duration:N.duration})}catch(N){return Response.json({html:"",css:"",js:"",errors:[N instanceof Error?N.message:String(N)],duration:0},{status:500})}}if(z==="/api/presets"&&J.method==="GET")return Response.json({presets:X.getAllPresets()});if(z==="/api/presets"&&J.method==="POST")try{let j=await J.json(),D=X.createPreset(j.name,j.props,{componentId:j.componentId,description:j.description});return await X.save(),Response.json(D)}catch(j){return Response.json({error:String(j)},{status:400})}if(z.startsWith("/api/presets/")&&!z.includes("/use")&&J.method==="GET"){let j=z.slice(13),D=X.getPreset(j);if(!D)return new Response("Preset not found",{status:404});return Response.json(D)}if(z.endsWith("/use")&&J.method==="POST"){let j=z.slice(13,-4),D=X.usePreset(j);if(!D)return new Response("Preset not found",{status:404});return await X.save(),Response.json(D)}if(z.startsWith("/api/presets/")&&J.method==="DELETE"){let j=z.slice(13);if(!X.deletePreset(j))return new Response("Preset not found",{status:404});return await X.save(),Response.json({success:!0})}if(z==="/api/bookmarks"&&J.method==="GET")return Response.json({bookmarks:Y.getAllBookmarks()});if(z==="/api/bookmarks"&&J.method==="POST")try{let j=await J.json(),D=Y.addBookmark(j.storyId,j.variantId,j.props,{name:j.name,notes:j.notes,color:j.color});return await Y.save(),Response.json(D)}catch(j){return Response.json({error:String(j)},{status:400})}if(z==="/api/bookmarks/toggle"&&J.method==="POST")try{let j=await J.json(),D=Y.toggleBookmark(j.storyId,j.variantId,j.props);return await Y.save(),Response.json(D)}catch(j){return Response.json({error:String(j)},{status:400})}if(z.startsWith("/api/bookmarks/")&&z!=="/api/bookmarks/toggle"&&J.method==="GET"){let j=z.slice(15),D=Y.getBookmark(j);if(!D)return new Response("Bookmark not found",{status:404});return Response.json(D)}if(z.startsWith("/api/bookmarks/")&&J.method==="DELETE"){let j=z.slice(15);if(!Y.deleteBookmark(j))return new Response("Bookmark not found",{status:404});return await Y.save(),Response.json({success:!0})}if(z==="/api/analytics/track"&&J.method==="POST")try{let j=await J.json();if(j.type==="view"&&j.componentId)O.trackView(j.componentId,j.variantId);else if(j.type==="prop_change"&&j.componentId&&j.propName)O.trackPropChange(j.componentId,j.propName,null);else if(j.type==="variant_switch"&&j.componentId&&j.variantId)O.trackVariantSwitch(j.componentId,j.variantId);else if(j.type==="search"&&j.query)O.trackSearch(j.query,0);return await O.save(),Response.json({success:!0})}catch(j){return Response.json({error:String(j)},{status:400})}if(z==="/api/analytics/summary"&&J.method==="GET")return Response.json({mostViewed:O.getMostViewedComponents(10),mostChangedProps:O.getMostChangedProps(10),searchAnalytics:O.getSearchAnalytics()});if(z.startsWith("/api/analytics/component/")&&J.method==="GET"){let j=z.slice(25),D=E.storyFiles.find((G)=>G.id===j),Z=O.getComponentAnalytics(j,D?.fileName||j);return Response.json(Z)}return new Response("Not found",{status:404})}function b(E,z,J){let $=x(E,J);return new Response($,{headers:{"Content-Type":"text/html; charset=utf-8"}})}function x(E,z){let{theme:J}=E.config,$=J.title||"STX Story",X=`ws://localhost:${z}/__hmr`,Y=H(X);return`<!DOCTYPE html>
|
|
3
3
|
<html lang="en" class="${J.darkClass||"dark"}">
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Zv as _}from"./chunk-
|
|
2
|
+
import{Zv as _}from"./chunk-nwfa5766.js";import{jE as M}from"./chunk-6r70w54p.js";import X from"fs";var U=new Map;async function Z(z,q,A={}){let B=performance.now(),J=[];try{let K=await X.promises.stat(q),O=U.get(q),N;if(O&&O.mtime===K.mtimeMs)N=O.content;else N=await X.promises.readFile(q,"utf-8"),U.set(q,{content:N,mtime:K.mtimeMs,analyzed:null});let{processDirectives:G}=await import("././process.js"),Q={},L=Y(N);if(L)try{await _(L,Q,q)}catch($){J.push(`Warning: Could not extract script variables: ${$ instanceof Error?$.message:String($)}`)}if(A.props)Object.assign(Q,A.props);let W=await G(N,Q,q,{},new Set),F=D(N),b=Y(N);return W=j(W),W=E(W,Q),{html:W,css:F,js:b,errors:J,duration:performance.now()-B}}catch(K){return J.push(K instanceof Error?K.message:String(K)),{html:`<div class="stx-render-error">${k(J[0])}</div>`,css:"",js:"",errors:J,duration:performance.now()-B}}}async function w(z){try{let q=await X.promises.readFile(z,"utf-8"),A=Y(q);if(!A)return null;let B={};if(await _(A,B,z),Array.isArray(B.variants))return B.variants;return null}catch{return null}}async function T(z,q,A,B){let J=q.story?.variants;if(!J){let N=await w(q.path);if(N)J=N}if(!J&&A==="default")return Z(z,q.path,{props:B||{}});if(!J)return Z(z,q.path,{props:B||{}});let K=J.find((N)=>N.id===A);if(!K&&A==="default")return Z(z,q.path,{props:B||{}});if(!K)return{html:'<div class="stx-render-error">Variant not found</div>',css:"",js:"",errors:[`Variant '${A}' not found`],duration:0};let O={...K.state,...B};if(K.source)return R(z,K.source,O);return Z(z,q.path,{props:O})}async function R(z,q,A={}){let B=performance.now(),J=[];try{let{processDirectives:K}=await import("././process.js"),O={...A},N=Y(q);if(N)try{await _(N,O,"inline-template.stx")}catch{}let Q=await K(q,O,"inline-template.stx",{},new Set);return Q=j(Q),Q=E(Q,O),{html:Q,css:D(q),js:Y(q),errors:J,duration:performance.now()-B}}catch(K){return J.push(K instanceof Error?K.message:String(K)),{html:`<div class="stx-render-error">${k(J[0])}</div>`,css:"",js:"",errors:J,duration:performance.now()-B}}}function D(z){let q=[],A=/<style\b[^>]*>([\s\S]*?)<\/style>/gi,B=A.exec(z);while(B!==null)q.push(B[1].trim()),B=A.exec(z);return q.join(`
|
|
3
3
|
`)}function j(z){return z.replace(/<!--[\s\S]*?-->/g,"").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"").replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").replace(/^\s*\n/gm,"").trim()}function Y(z){let q=[],A=/<script\b[^>]*>([\s\S]*?)<\/script>/gi,B=A.exec(z);while(B!==null)q.push(B[1].trim()),B=A.exec(z);return q.join(`
|
|
4
4
|
`)}function E(z,q){let A=`<script>window.__stxProps = ${JSON.stringify(q)};</script>`;return z+A}function k(z){return z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function g(){U.clear()}function u(){return{size:U.size,entries:Array.from(U.keys())}}async function I(z){let q=0;for(let A of z)try{let B=await X.promises.stat(A),J=await X.promises.readFile(A,"utf-8");U.set(A,{content:J,mtime:B.mtimeMs,analyzed:null}),q++}catch{}return q}function S(z,q={}){let{title:A="Preview",theme:B="light",background:J="#ffffff",crosswindCss:K=""}=q;return`<!DOCTYPE html>
|
|
5
5
|
<html lang="en" class="${B==="dark"?"dark":""}">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ev as T,Ku as B}from"./chunk-
|
|
2
|
+
import{Ev as T,Ku as B}from"./chunk-tzd81m7r.js";import{Zv as N}from"./chunk-nwfa5766.js";import{jE as M}from"./chunk-6r70w54p.js";import O from"fs";import Z from"path";async function S(q,G={},z={}){let E=await Bun.file(q).text(),j=E.match(/<script\s+server\s*>([\s\S]*?)<\/script>/i),F=j?j[1]:"",J=j?E.replace(/<script\s+server\s*>[\s\S]*?<\/script>/i,""):E;J=J.replace(/<script\s+client\s*>/gi,"<script>");let K={__filename:q,__dirname:Z.dirname(q),props:G,...G};if(F)await N(F,K,q);let L={...B,...z};return await T(J,K,q,L,new Set)}async function y(q){let G=performance.now(),z={success:!0,views:[],errors:[],duration:0},{viewsDir:E,outputDir:j,componentsDir:F=Z.join(E,"components"),layoutsDir:J=Z.join(E,"layouts"),partialsDir:K=Z.join(E,"partials"),globalProps:L={},placeholders:Q={},views:U,debug:I=!1,generateManifest:R=!0}=q;if(I)console.log("Building STX views..."),console.log(` Source: ${E}`),console.log(` Output: ${j}`);O.mkdirSync(j,{recursive:!0});let A={componentsDir:F,layoutsDir:J,partialsDir:K,debug:I},_;if(U&&U.length>0)_=U;else _=O.readdirSync(E).filter((W)=>W.endsWith(".stx")).map((W)=>({input:W}));for(let H of _){let W=Z.join(E,H.input),X=H.output||H.input.replace(/\.stx$/,".html"),$=Z.join(j,X);if(I)console.log(` Building ${H.input}...`);try{let Y={...L,...H.props,...Q},k=await S(W,Y,A);await Bun.write($,k),z.views.push(X)}catch(Y){let k=Y instanceof Error?Y.message:String(Y);if(z.errors.push({file:H.input,error:k}),z.success=!1,I)console.error(` Error: ${k}`)}}if(R){let H={buildTime:new Date().toISOString(),views:z.views,placeholders:Q,errors:z.errors.length>0?z.errors:void 0};await Bun.write(Z.join(j,"manifest.json"),JSON.stringify(H,null,2))}if(z.duration=performance.now()-G,I)if(z.success)console.log(`
|
|
3
3
|
\u2705 Built ${z.views.length} views in ${z.duration.toFixed(0)}ms`);else console.log(`
|
|
4
4
|
\u26A0\uFE0F Built ${z.views.length} views with ${z.errors.length} errors`);return z}function C(q,G){let z=O.watch(q.viewsDir,{recursive:!0},async(E,j)=>{if(!j)return;if(j.endsWith(".stx")||j.endsWith(".ts")||j.endsWith(".js")){if(q.debug)console.log(`
|
|
5
5
|
File changed: ${j}, rebuilding...`);let F=await y(q);G?.(F)}});return{close:()=>z.close()}}async function g(q,G={},z={}){let E={...z,skipDefaultSeoTags:!0,skipSignalsRuntime:!0},j=await S(q,G,E);j=await x(j),j=j.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,""),j=j.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,""),j=j.replace(/<!--\s*stx SEO Tags\s*-->/gi,""),j=j.replace(/\n\s*\n\s*\n/g,`
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Lu as O}from"./chunk-
|
|
2
|
+
import{Lu as O}from"./chunk-tzd81m7r.js";import M from"path";var Q=/<script\b[^>]*\bserver\b/i,W=/<script\b[^>]*\bclient\b/i;async function Z(q){let u=performance.now(),k=await O(q),z=q||k.root||process.cwd(),G=[k.build?.pagesDir||k.pagesDir||"pages",k.componentsDir||"components",k.layoutsDir||"layouts",k.partialsDir||"partials"].map((w)=>M.resolve(z,w)),A=[],B=0;for(let w of G){let H=await U(w);for(let J of H){B++;let K=await Bun.file(J).text();if(Q.test(K))A.push(M.relative(z,J))}}return{mode:A.length>0?"ssr":"ssg",serverScriptFiles:A,totalFilesScanned:B,scanDurationMs:Math.round(performance.now()-u)}}async function $(q){let u=await O(q),k=q||u.root||process.cwd(),z=M.resolve(k,u.componentsDir||"components"),G=[],A=await U(z);for(let B of A){let w=await Bun.file(B).text(),H=Q.test(w),J=W.test(w)||/<script\b(?![^>]*\bserver\b)[^>]*>/i.test(w)&&!H;if(H&&J){let K=M.relative(k,B);G.push({file:K,message:`Component "${K}" has both <script server> and <script client>. `+"Components should be server OR client \u2014 compose them via props/slots."})}}return G}async function U(q){let u=[];try{let k=new Bun.Glob("**/*.stx");for await(let z of k.scan({cwd:q,absolute:!0}))u.push(z)}catch{}return u}
|
|
3
3
|
export{Z as it,$ as jt};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{xb as G}from"./chunk-p4wm4a45.js";import{Db as F}from"./chunk-cf86cs0k.js";import{Nb as E}from"./chunk-
|
|
2
|
+
import{xb as G}from"./chunk-p4wm4a45.js";import{Db as F}from"./chunk-cf86cs0k.js";import{Nb as E}from"./chunk-r5sggjdv.js";import{jE as J}from"./chunk-6r70w54p.js";var k={story:{description:"Component showcase and testing",options:{port:{alias:"p",type:"number",description:"Server port (default: 6006)"},open:{alias:"o",type:"boolean",description:"Open browser automatically"},host:{type:"string",description:"Host to bind to"}},action:async(j)=>{await E(j)}},"story:dev":{description:"Start story development server",options:{port:{alias:"p",type:"number",description:"Server port (default: 6006)"},open:{alias:"o",type:"boolean",description:"Open browser automatically"},host:{type:"string",description:"Host to bind to"}},action:async(j)=>{await E(j)}},"story:build":{description:"Build static story site",options:{outDir:{alias:"o",type:"string",description:"Output directory"}},action:async(j)=>{await F(j)}},"story:preview":{description:"Preview built story site",options:{port:{alias:"p",type:"number",description:"Server port (default: 4173)"},open:{alias:"o",type:"boolean",description:"Open browser automatically"}},action:async(j)=>{await G(j)}},"story:test":{description:"Run visual regression tests",options:{update:{alias:"u",type:"boolean",description:"Update snapshots"},filter:{alias:"f",type:"string",description:"Filter components by name"}},action:async(j)=>{let{createContext:B}=await import("./story/context.js"),{runVisualTests:q,updateSnapshots:A,formatTestResults:z}=await import("./story/testing.js"),H=await B({mode:"build"});if(j.update){let D=await A(H,{filter:j.filter?[j.filter]:void 0});console.log(`Updated ${D} snapshots`)}else{let D=await q(H,{filter:j.filter?[j.filter]:void 0});if(console.log(z(D)),D.failed>0)process.exit(1)}}}};function O(j){j.command("story",k.story.description).option("-p, --port <port>",k.story.options.port.description).option("-o, --open",k.story.options.open.description).option("--host <host>",k.story.options.host.description).action(k.story.action),j.command("story dev",k["story:dev"].description).option("-p, --port <port>",k["story:dev"].options.port.description).option("-o, --open",k["story:dev"].options.open.description).option("--host <host>",k["story:dev"].options.host.description).action(k["story:dev"].action),j.command("story build",k["story:build"].description).option("-o, --outDir <dir>",k["story:build"].options.outDir.description).action(k["story:build"].action),j.command("story preview",k["story:preview"].description).option("-p, --port <port>",k["story:preview"].options.port.description).option("-o, --open",k["story:preview"].options.open.description).action(k["story:preview"].action),j.command("story test",k["story:test"].description).option("-u, --update",k["story:test"].options.update.description).option("-f, --filter <name>",k["story:test"].options.filter.description).action(k["story:test"].action)}async function Q(j=process.argv.slice(2)){let B=j[0]||"dev",q={};for(let A=1;A<j.length;A++){let z=j[A];if(z==="-p"||z==="--port")q.port=Number.parseInt(j[++A],10);else if(z==="-o"||z==="--open")q.open=!0;else if(z==="--host")q.host=j[++A];else if(z==="-u"||z==="--update")q.update=!0;else if(z==="-f"||z==="--filter")q.filter=j[++A];else if(z==="--outDir")q.outDir=j[++A]}switch(B){case"dev":case"":await E(q);break;case"build":await F(q);break;case"preview":await G(q);break;case"test":await k["story:test"].action(q);break;default:console.log("Unknown command:",B),console.log("Available commands: dev, build, preview, test"),process.exit(1)}}
|
|
3
3
|
export{k as ub,O as vb,Q as wb};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Lv as J,Mu as H}from"./chunk-
|
|
2
|
+
import{Lv as J,Mu as H}from"./chunk-tzd81m7r.js";import A from"fs";import $ from"path";async function B(z){try{let G=(await Bun.file(z).text()).match(/<script\b[^>]*>([\s\S]*?)<\/script>/i);if(!G)return[];let K=G[1],q=[],j=/\/\*\*\s*([\s\S]*?)\s*\*\/\s*(?:(?:const|let|var)\s*)?(?:([\w$]+)\s*=|module\.exports\.([\w$]+)\s*=|\s*([\w$]+)\s*:)/g,O;while((O=j.exec(K))!==null){let Q=O[1],U=O[2]||O[3]||O[4];if(!U)continue;let V={name:U},X=Q.match(/@type\s+\{([^}]+)\}/i);if(X)V.type=X[1].trim();if(Q.match(/@required/i))V.required=!0;let S=Q.match(/@default\s+(.+?)(?:\s+|$)/i);if(S)V.default=S[1].trim();let _=Q.split(`
|
|
3
3
|
`).map((Z)=>Z.trim().replace(/^\*\s*/,"")).filter((Z)=>!Z.startsWith("@")&&Z.length>0);V.description=_.join(" ").trim(),q.push(V)}if(q.length===0){let Q=K.match(/module\.exports\s*=\s*\{([^}]+)\}/i);if(Q){let V=Q[1].split(",").map((X)=>X.trim()).filter(Boolean);for(let X of V){let[Y]=X.split(":").map((S)=>S.trim());if(Y)q.push({name:Y})}}}return q}catch(I){return console.error(`Error extracting props from ${z}:`,I),[]}}async function E(z){try{let I=await Bun.file(z).text(),G=I.match(/^\s*<!--\s*([\s\S]*?)\s*-->/)||I.match(/^\s*\/\*\*\s*([\s\S]*?)\s*\*\//);if(G)return G[1].split(`
|
|
4
4
|
`).map((K)=>K.trim().replace(/^\*\s*/,"")).join(" ").trim();return""}catch{return""}}async function N(z,I=!1,G){let K=$.basename(z,".stx"),q=await B(z),j=await E(z),O="";if(I&&G)O=`<${G}></${G}>`;else{let Q=q.map((U)=>{if(U.type==="boolean")return`:${U.name}="true"`;return`${U.name}="value"`}).join(`
|
|
5
5
|
`);O=`<${K}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ev as m,Su as C}from"./chunk-
|
|
2
|
+
import{Ev as m,Su as C}from"./chunk-tzd81m7r.js";import{Zv as x}from"./chunk-nwfa5766.js";import{jE as c}from"./chunk-6r70w54p.js";var{serve:h}=globalThis.Bun;import K from"fs";import $ from"path";function jj(W,Z=200,G={}){return new Response(W,{status:Z,headers:{"Content-Type":"text/html; charset=utf-8",...G}})}async function i(W={}){let{port:Z=3000,root:G=".",stxOptions:E={},watch:v=!0,onRequest:V,routes:N={},middleware:D=[],on404:T,onError:g}=W,F=$.resolve(G),X=new Map;async function O(A){let B=K.statSync(A),L=`${A}:${B.mtimeMs}`,z=X.get(L);if(z)return z.content;for(let J of X.keys())if(J.startsWith(`${A}:`)&&J!==L)X.delete(J);let j=await Bun.file(A).text(),Q=j,H=j.match(/<template\b(?![^>]*(?:\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=|\s#[\w-]|\bv-slot|\bslot\s*=))[^>]*>/i);if(H&&H.index!==void 0){let J=H.index+H[0].length,U=1,_=J;while(_<j.length&&U>0){let R=j.indexOf("<template",_),k=j.indexOf("</template>",_);if(k===-1)break;if(R!==-1&&R<k)U++,_=R+9;else{if(U--,U===0){Q=j.substring(J,k).trim();break}_=k+11}}}let y=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,b=[],d=[],I;while((I=y.exec(j))!==null){let J=I[1],U=I[2],_=I[0];if(J.includes("server"))d.push(U);else b.push(_)}let P=j.match(/<style\b[^>]*>[\s\S]*?<\/style>/gi)||[],p=Q.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,""),M={__filename:A,__dirname:$.dirname(A)};for(let J of d)await x(J,M,A);let Y=await m(p,M,A,E,new Set);if(P.length>0){let J=P.join(`
|
|
3
3
|
`);if(Y.match(/(<\/head>)/i))Y=Y.replace(/(<\/head>)/i,`${J}
|
|
4
4
|
$1`)}if(b.length>0){let{interpolateScriptsInTemplate:J}=await import("././expressions.js"),U=J(b.join(`
|
|
5
5
|
`),M);if(Y.match(/(<\/body>)/i))Y=Y.replace(/(<\/body>)/i,`${U}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ev as X,ru as W}from"./chunk-
|
|
2
|
+
import{Ev as X,ru as W}from"./chunk-tzd81m7r.js";import V from"fs";import M from"path";import*as Y from"readline";var j={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m"},Q={help:{description:"Show available commands",usage:"help [command]",handler:async(q,z)=>{if(q[0]&&Q[q[0]]){let A=Q[q[0]];console.log(`
|
|
3
3
|
${j.bold}${q[0]}${j.reset} - ${A.description}`),console.log(` Usage: ${j.cyan}${A.usage}${j.reset}
|
|
4
4
|
`)}else{console.log(`
|
|
5
5
|
${j.bold}Available Commands:${j.reset}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{nu as U,tu as W}from"./chunk-
|
|
2
|
+
import{nu as U,tu as W}from"./chunk-tzd81m7r.js";import{Zv as X}from"./chunk-nwfa5766.js";import{Zw as R,_w as O}from"./chunk-r7d26vjj.js";import{jE as Q}from"./chunk-6r70w54p.js";async function F(j,N={}){return(await _(j,N)).html}async function V(j,N={}){let{html:J,context:A}=await _(j,N),{extractStreamBoundaries:G}=await import("././streaming.js"),z=G(A),w=j.streamTemplates;if(w&&Object.keys(w).length>0){let{processDirectives:$}=await import("././process.js"),{defaultConfig:D}=await import("././config.js"),Y=A.streamBoundaries||{},I={...D,autoShell:!1},Z=Object.keys(w).map((K)=>({id:K,render:async()=>{let M=typeof Y[K]==="function"?await Y[K]():void 0;return $(w[K],{...A,$boundary:M},j.sourceFile,I,new Set)}})),L=new Set(Z.map((K)=>K.id));z=[...(z||[]).filter((K)=>!L.has(K.id)),...Z]}return{html:J,boundaries:z&&z.length>0?z:void 0}}async function _(j,N){let J={__filename:j.sourceFile,__dirname:j.sourceFile.replace(/[/\\][^/\\]+$/,""),...N};if(!j.hasServerScripts&&!O(j.html))return{html:j.html,context:J};for(let G of j.serverScriptContent)try{await X(G,J,j.sourceFile)}catch(z){console.warn(`[stx] Server script error in ${j.sourceFile}:`,z)}if(!O(j.html))return{html:j.html,context:J};let A=new Map;for(let[G,z]of Object.entries(j.placeholders))if(z.expression)try{let w=W(z.expression,J);if(z.type==="raw")A.set(G,w!==void 0&&w!==null?String(w):"");else A.set(G,w!==void 0&&w!==null?U(String(w)):"")}catch{A.set(G,"")}return{html:R(j.html,A),context:J}}async function y(j,N={}){if(!j.hasServerScripts&&!O(j.fragment))return j.fragment;let J={__filename:j.sourceFile,__dirname:j.sourceFile.replace(/[/\\][^/\\]+$/,""),...N};for(let G of j.serverScriptContent)try{await X(G,J,j.sourceFile)}catch(z){console.warn(`[stx] Server script error in ${j.sourceFile}:`,z)}if(!O(j.fragment))return j.fragment;let A=new Map;for(let[G,z]of Object.entries(j.placeholders))if(z.expression)try{let w=W(z.expression,J);if(z.type==="raw")A.set(G,w!==void 0&&w!==null?String(w):"");else A.set(G,w!==void 0&&w!==null?U(String(w)):"")}catch{A.set(G,"")}return R(j.fragment,A)}
|
|
3
3
|
export{F as Ri,V as Si,y as Ti};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ah as YJ,Ch as _J,Fh as zJ,sh as $J,uh as VJ,vh as KJ}from"./chunk-dgf2g708.js";import{Ji as uG,Li as UJ,Mi as LJ,Pi as pG}from"./chunk-8xbj6dqe.js";import{mm as $G,nm as vG,om as xG,pm as TG,qm as SG,rm as EG}from"./chunk-kyhq6hzp.js";import{On as mG}from"./chunk-
|
|
2
|
+
import{Ah as YJ,Ch as _J,Fh as zJ,sh as $J,uh as VJ,vh as KJ}from"./chunk-dgf2g708.js";import{Ji as uG,Li as UJ,Mi as LJ,Pi as pG}from"./chunk-8xbj6dqe.js";import{mm as $G,nm as vG,om as xG,pm as TG,qm as SG,rm as EG}from"./chunk-kyhq6hzp.js";import{On as mG}from"./chunk-ms9rebfj.js";import{io as wG,ko as DG}from"./chunk-f6s1jx8c.js";import{mo as IG}from"./chunk-snj1hfpb.js";import{po as tG,qo as eG,ro as GJ,so as JJ}from"./chunk-yywc3yge.js";import{yo as NG}from"./chunk-1k3k1tf8.js";import{ls as HJ,ms as AJ}from"./chunk-hz7qnpx1.js";import{os as QJ}from"./chunk-am5rtv86.js";import{Ct as kJ,Dt as cG,Et as RG,Ft as yG,Gt as BJ,Ht as WJ,It as OJ}from"./chunk-r3cxnszy.js";import{Ev as MJ,Lu as EJ,Mu as dG,Pv as LG,Su as oG,jv as UG,nu as BG,xu as FJ}from"./chunk-tzd81m7r.js";import{Zv as qJ}from"./chunk-nwfa5766.js";import{Lw as jJ}from"./chunk-v0s45ek4.js";import{Wy as ZJ}from"./chunk-9fj7hpwa.js";import{Gz as jG,Hz as MG,Lz as s}from"./chunk-0t75nh4z.js";import{Mz as G}from"./chunk-exfw0aqe.js";import{GA as iG}from"./chunk-xgmza98t.js";import{hB as aG}from"./chunk-gcsqn7x9.js";import{kB as nG,lB as NJ}from"./chunk-7t4hkmxb.js";import{sB as lG,uB as sG}from"./chunk-pjaa8q7x.js";import{xB as IJ}from"./chunk-b0w1cm1s.js";import{jE as m}from"./chunk-6r70w54p.js";import qG from"path";var{serve:vJ}=globalThis.Bun;import XG from"fs";import i from"path";async function xJ(S,B={}){let I=B.port||3000,y=B.watch!==!1,v=B.hotReload!==!1&&y,j=null,_=B.hmrPort||I+1,X=i.resolve(S);if(!XG.existsSync(X))return console.error(`${G.red}Error: File not found: ${G.bright}${X}${G.reset}`),!1;if(X.endsWith(".md"))return mG(X,B);else if(!X.endsWith(".stx"))return console.error(`${G.red}Error: Unsupported file type: ${G.bright}${X}${G.reset}. Only .stx and .md files are supported.`),!1;let C=i.join(process.cwd(),".stx/output");XG.mkdirSync(C,{recursive:!0}),console.log(`${G.blue}Building ${G.bright}${S}${G.reset}...`);let b=null,f=async()=>{try{let U={name:"public-assets",setup(O){O.onResolve({filter:/^\/(images|fonts|assets|public)\//},(H)=>{return{path:H.path,external:!0}})}},K=await Bun.build({entrypoints:[X],outdir:C,plugins:[U,kG],publicPath:"/",define:{"process.env.NODE_ENV":'"development"'},...B.stxOptions});if(!K.success)return console.error(`${G.red}Build failed:${G.reset}`,K.logs),!1;let k=K.outputs.find((O)=>O.path.endsWith(".html"));if(!k)return console.error(`${G.red}No HTML output found${G.reset}`),!1;return b=await Bun.file(k.path).text(),!0}catch(U){return console.error(`${G.red}Error building stx file:${G.reset}`,U),!1}};if(!await f())return!1;let l=i.dirname(X);await jG(l);let R=I;try{if(R=await IG(I),R!==I)console.log(`${G.yellow}Port ${I} is busy, using port ${R} instead${G.reset}`)}catch{return console.error(`${G.red}Could not find an available port${G.reset}`),!1}if(v){let U=B.hmrPort||R+1;j=SG({wsPort:U,verbose:!1}),_=j.start(U)}let $={},Z=null;try{let{loadStxConfig:U}=await import("././index.js"),K=await U();if(K?.apiRouter)Z=K?.apiRouter,console.log(`${G.blue}Using custom router for API handling${G.reset}`);if(K?.apiRoutes){$=K.apiRoutes;let k=Object.keys($).length;if(k>0)console.log(`${G.blue}Loaded ${G.bright}${k} API route${k>1?"s":""}${G.reset}`)}if(K?.broadcasting?.enabled)try{let{startBroadcasting:k,loadChannels:Q}=await import("././broadcasting.js"),O=K.broadcasting;await k(O);let H=O.port??6001;console.log(`${G.magenta}Broadcasting on ${G.cyan}ws://localhost:${H}/ws${G.reset}`);let E=i.join(process.cwd(),"channels.ts");if(XG.existsSync(E))try{let V=await Q(E);console.log(`${G.blue}Loaded ${G.bright}${V} broadcast channel${V!==1?"s":""}${G.blue} from channels.ts${G.reset}`)}catch(V){console.warn(`${G.yellow}Failed to load channels.ts: ${V.message}${G.reset}`)}}catch(k){console.warn(`${G.yellow}Broadcasting failed to start: ${k.message}${G.reset}`)}}catch{}if(console.log(`${G.blue}Starting server on ${G.cyan}http://localhost:${R}/${G.reset}...`),v)console.log(`${G.magenta}Hot reload enabled on ws://localhost:${_}${G.reset}`);let M=vJ({port:R,async fetch(U){let K=new URL(U.url);if(Z)try{let E=await Z.handleRequest(U);if(E.status!==404)return E}catch{}if($[K.pathname])try{return await $[K.pathname](U)}catch(E){return new Response(JSON.stringify({error:E.message}),{status:500,headers:{"Content-Type":"application/json"}})}if(K.pathname==="/")return(async()=>{let V=await s(b||"");if(v)V=$G(V,_);if(B.native)if(V.includes("<head>"))V=V.replace("<head>","<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script>");else if(V.includes("<html"))V=V.replace(/(<html[^>]*>)/,"$1<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>");else V="<head><style>[data-stx-sidebar],.stx-sidebar{display:none!important}</style><script>window.__craftNativeSidebar=true;document.documentElement.classList.add('has-native-sidebar')</script></head>"+V;if(B.titlebarHidden)if(V.includes("<head>"))V=V.replace("<head>","<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script>");else if(V.includes("<html"))V=V.replace(/(<html[^>]*>)/,"$1<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script></head>");else V=`<head><style>html.stx-titlebar-hidden .stx-traffic-lights-dot{visibility:hidden}</style><script>document.documentElement.classList.add('stx-titlebar-hidden')</script></head>${V}`;return V})().then((V)=>new Response(V,{headers:{"Content-Type":"text/html","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}}));let k=i.join(C,K.pathname);if(XG.existsSync(k)&&XG.statSync(k).isFile()){let E=Bun.file(k),V=i.extname(k).toLowerCase(),Y="text/plain";if(V===".ts"||V===".tsx"){let u=new Bun.Transpiler({loader:V===".tsx"?"tsx":"ts"}),n=await E.text(),WG=u.transformSync(n);return new Response(WG,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(V){case".html":Y="text/html";break;case".css":Y="text/css";break;case".js":Y="text/javascript";break;case".json":Y="application/json";break;case".png":Y="image/png";break;case".jpg":case".jpeg":Y="image/jpeg";break;case".gif":Y="image/gif";break;case".woff":Y="font/woff";break;case".woff2":Y="font/woff2";break;case".ttf":Y="font/ttf";break;case".otf":Y="font/otf";break;case".eot":Y="application/vnd.ms-fontobject";break}return new Response(E,{headers:{"Content-Type":Y}})}let Q=i.dirname(X),O=i.join(Q,K.pathname);if(XG.existsSync(O)&&XG.statSync(O).isFile()){let E=Bun.file(O),V=i.extname(O).toLowerCase(),Y="text/plain";if(V===".ts"||V===".tsx"){let u=new Bun.Transpiler({loader:V===".tsx"?"tsx":"ts"}),n=await E.text(),WG=u.transformSync(n);return new Response(WG,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(V){case".html":Y="text/html";break;case".css":Y="text/css";break;case".js":Y="text/javascript";break;case".json":Y="application/json";break;case".png":Y="image/png";break;case".jpg":case".jpeg":Y="image/jpeg";break;case".gif":Y="image/gif";break;case".svg":Y="image/svg+xml";break;case".ico":Y="image/x-icon";break;case".woff":Y="font/woff";break;case".woff2":Y="font/woff2";break;case".ttf":Y="font/ttf";break;case".otf":Y="font/otf";break;case".eot":Y="application/vnd.ms-fontobject";break}return new Response(E,{headers:{"Content-Type":Y}})}let H=i.join(process.cwd(),"public",K.pathname);if(XG.existsSync(H)&&XG.statSync(H).isFile()){let E=Bun.file(H),V=i.extname(H).toLowerCase(),Y="application/octet-stream";if(V===".ts"||V===".tsx"){let u=new Bun.Transpiler({loader:V===".tsx"?"tsx":"ts"}),n=await E.text(),WG=u.transformSync(n);return new Response(WG,{headers:{"Content-Type":"application/javascript","Cache-Control":"no-store, no-cache, must-revalidate",Pragma:"no-cache",Expires:"0"}})}switch(V){case".html":Y="text/html";break;case".css":Y="text/css";break;case".js":Y="text/javascript";break;case".json":Y="application/json";break;case".png":Y="image/png";break;case".jpg":case".jpeg":Y="image/jpeg";break;case".gif":Y="image/gif";break;case".svg":Y="image/svg+xml";break;case".ico":Y="image/x-icon";break;case".woff":Y="font/woff";break;case".woff2":Y="font/woff2";break;case".ttf":Y="font/ttf";break;case".otf":Y="font/otf";break;case".eot":Y="application/vnd.ms-fontobject";break}return new Response(E,{headers:{"Content-Type":Y}})}return new Response("Not Found",{status:404})},error(U){return new Response(`<pre>${U}
|
|
3
3
|
${U.stack}</pre>`,{headers:{"Content-Type":"text/html"}})}});console.clear(),console.log(`
|
|
4
4
|
${G.blue}stx${G.reset} ${G.green}${process.env.stx_VERSION||"v0.0.10"}${G.reset} ${G.dim}ready in ${Math.random()*10+5|0}.${Math.random()*90+10|0} ms${G.reset}`),console.log(`
|
|
5
5
|
${G.bright}\u2192 ${G.cyan}http://localhost:${R}/${G.reset}`),console.log(`
|
|
@@ -179,7 +179,7 @@ ${J.stack}</pre>`,{headers:{"Content-Type":"text/html"}})}});if(console.clear(),
|
|
|
179
179
|
${G.blue}stx${G.reset} ${G.green}${process.env.stx_VERSION||"v0.0.10"}${G.reset} ${G.dim}ready in ${Math.random()*10+5|0}.${Math.random()*90+10|0} ms${G.reset}`),console.log(`
|
|
180
180
|
${G.bright}\u2192 ${G.cyan}http://localhost:${zG}/${G.reset}`),v)console.log(`${G.dim} HMR: ws://localhost:${_}${G.reset}`);console.log(`
|
|
181
181
|
${G.yellow}Routes:${G.reset}`);let gG=[...LJ(R,X)];for(let{route:J}of Z)gG.push(`${J.pattern}`);if(gG.forEach((J,L)=>{let A=L===gG.length-1?"\u2514\u2500 ":"\u251C\u2500 ";console.log(` ${G.green}${A}${G.reset}${J}`)}),console.log(`
|
|
182
|
-
Press ${G.cyan}h${G.reset} + ${G.cyan}Enter${G.reset} to show shortcuts`),NG(bG.url.toString(),()=>{if(j)EG();bG.stop()}),B.native){let J,L=D.join(l,"index.stx");if(a.existsSync(L)){let A=await Bun.file(L).text();J=DG(A)}let N=b?.app?.window??{};await wG(zG,{title:b?.app?.head?.title||D.basename(X)||"stx App",width:N.width,height:N.height,darkMode:N.darkMode,hotReload:N.hotReload,titlebarHidden:N.titlebarHidden??B.titlebarHidden===!0,nativeSidebar:!!J,sidebarConfig:J})}if(y){console.log(`${G.blue}Watching for changes...${G.reset}`);let J=(A)=>{return A.startsWith("public/")||A.startsWith("public\\")},L=(A)=>{let q=A.toLowerCase();return q.endsWith(".stx")||q.endsWith(".html")||q.endsWith(".md")},N=a.watch(X,{recursive:!0},async(A,q)=>{if(!q||TG(q))return;if(xG(q))if(J(q)){if(console.log(`${G.cyan}${q} changed${G.reset}`),v&&j)j.reload(q)}else if(L(q)){console.log(`${G.yellow}${q} changed, rebuilding...${G.reset}`),UG.clear(),LG();try{let{invalidateFileCache:o,templateCache:r}=await import("././caching.js");o(D.resolve(X,q)),r.delete(D.resolve(X,q))}catch{}if(U&&q){if(D.resolve(X,q)===U||D.basename(U)===q){let r=await cG(U,B.stxOptions||{});if(r)F=r}}if(await n(),await MG(X),v&&j)j.reload(q)}else{console.log(`${G.yellow}${q} changed, rebuilding...${G.reset}`),UG.clear(),LG();try{let{invalidateFileCache:o,templateCache:r}=await import("././caching.js");o(D.resolve(X,q)),r.delete(D.resolve(X,q))}catch{}if(await n(),v&&j)j.reload(q)}else if(vG(q)){if(console.log(`${G.cyan}CSS ${q} changed${G.reset}`),v&&j)j.updateCss(q)}});process.on("SIGINT",()=>{if(N.close(),j)EG();bG.stop(),process.exit(0)})}return!0}var cX={};var kG={name:"bun-plugin-stx",async setup(S){let I={...await EJ(),...S.config?.stx},y=new Set,v=I.webComponents?.enabled?`./${qG.relative(qG.dirname(S.config?.outdir||"dist"),I.webComponents.outputDir||"dist/web-components")}`:"/web-components",j=[];if(I.webComponents?.enabled)try{let _=await FJ(I,y);if(j.push(..._),I.debug&&_.length>0)console.log(`Successfully built ${_.length} web components`)}catch(_){console.error("Failed to build web components:",_)}S.onLoad({filter:/\.stx$/},async({path:_})=>{try{let X=new Set;if(I.cache&&I.cachePath){let Z=await HJ(_,I);if(Z){if(I.debug)console.log(`Using cached version of ${_}`);return{contents:Z,loader:"html"}}}let C=await aG(()=>Bun.file(_).text(),"",(Z)=>{throw new sG(`Failed to read stx file: ${_}`,_,void 0,void 0,`File read error: ${Z.message}`)});if(!C)throw new sG(`stx file is empty: ${_}`,_);let{scriptContent:b,templateContent:f,allScripts:h}=iG.time("script-extraction",()=>{let Z=C,M=C.match(/<template\b(?![^>]
|
|
182
|
+
Press ${G.cyan}h${G.reset} + ${G.cyan}Enter${G.reset} to show shortcuts`),NG(bG.url.toString(),()=>{if(j)EG();bG.stop()}),B.native){let J,L=D.join(l,"index.stx");if(a.existsSync(L)){let A=await Bun.file(L).text();J=DG(A)}let N=b?.app?.window??{};await wG(zG,{title:b?.app?.head?.title||D.basename(X)||"stx App",width:N.width,height:N.height,darkMode:N.darkMode,hotReload:N.hotReload,titlebarHidden:N.titlebarHidden??B.titlebarHidden===!0,nativeSidebar:!!J,sidebarConfig:J})}if(y){console.log(`${G.blue}Watching for changes...${G.reset}`);let J=(A)=>{return A.startsWith("public/")||A.startsWith("public\\")},L=(A)=>{let q=A.toLowerCase();return q.endsWith(".stx")||q.endsWith(".html")||q.endsWith(".md")},N=a.watch(X,{recursive:!0},async(A,q)=>{if(!q||TG(q))return;if(xG(q))if(J(q)){if(console.log(`${G.cyan}${q} changed${G.reset}`),v&&j)j.reload(q)}else if(L(q)){console.log(`${G.yellow}${q} changed, rebuilding...${G.reset}`),UG.clear(),LG();try{let{invalidateFileCache:o,templateCache:r}=await import("././caching.js");o(D.resolve(X,q)),r.delete(D.resolve(X,q))}catch{}if(U&&q){if(D.resolve(X,q)===U||D.basename(U)===q){let r=await cG(U,B.stxOptions||{});if(r)F=r}}if(await n(),await MG(X),v&&j)j.reload(q)}else{console.log(`${G.yellow}${q} changed, rebuilding...${G.reset}`),UG.clear(),LG();try{let{invalidateFileCache:o,templateCache:r}=await import("././caching.js");o(D.resolve(X,q)),r.delete(D.resolve(X,q))}catch{}if(await n(),v&&j)j.reload(q)}else if(vG(q)){if(console.log(`${G.cyan}CSS ${q} changed${G.reset}`),v&&j)j.updateCss(q)}});process.on("SIGINT",()=>{if(N.close(),j)EG();bG.stop(),process.exit(0)})}return!0}var cX={};var kG={name:"bun-plugin-stx",async setup(S){let I={...await EJ(),...S.config?.stx},y=new Set,v=I.webComponents?.enabled?`./${qG.relative(qG.dirname(S.config?.outdir||"dist"),I.webComponents.outputDir||"dist/web-components")}`:"/web-components",j=[];if(I.webComponents?.enabled)try{let _=await FJ(I,y);if(j.push(..._),I.debug&&_.length>0)console.log(`Successfully built ${_.length} web components`)}catch(_){console.error("Failed to build web components:",_)}S.onLoad({filter:/\.stx$/},async({path:_})=>{try{let X=new Set;if(I.cache&&I.cachePath){let Z=await HJ(_,I);if(Z){if(I.debug)console.log(`Using cached version of ${_}`);return{contents:Z,loader:"html"}}}let C=await aG(()=>Bun.file(_).text(),"",(Z)=>{throw new sG(`Failed to read stx file: ${_}`,_,void 0,void 0,`File read error: ${Z.message}`)});if(!C)throw new sG(`stx file is empty: ${_}`,_);let{scriptContent:b,templateContent:f,allScripts:h}=iG.time("script-extraction",()=>{let Z=C,M=C.match(/<template\b(?![^>]*(?:\b(?:id|x-for|x-if|@for|@if|:for|:if)\s*=|\s#[\w-]|\bv-slot|\bslot\s*=))[^>]*>([\s\S]*?)<\/template>/i);if(M)Z=M[1].trim();let F=C.match(/<script\b[^>]*>[\s\S]*?<\/script>/gi)||[],U="",K=[];for(let Q of F){let O=Q.match(/<script\b[^>]*>([\s\S]*?)<\/script>/i)?.[1]||"",H=Q.match(/<script\b([^>]*)>/i),E=H?H[1]:"";if(/\bserver\b/i.test(E))U=O;else K.push(Q)}let k=Z.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"");return{scriptContent:U,templateContent:k,allScripts:K}}),l={__filename:_,__dirname:qG.dirname(_),__stx:{webComponentsPath:v,builtComponents:j}};await aG(()=>qJ(b,l,_),void 0,(Z)=>{let M=new lG(`Script execution failed in ${_}: ${Z.message}`,_,void 0,void 0,b.substring(0,100));if(nG.log(M,{filePath:_,scriptContent:b}),I.debug)throw M});let $=await iG.timeAsync("directive-processing",async()=>{return await MJ(f,l,_,I,X)});if(h.length>0){let{interpolateScriptsInTemplate:Z}=await import("././expressions.js"),M=Z(h.join(`
|
|
183
183
|
`),l),F=$.search(/<\/body>/i);if(F!==-1)$=$.slice(0,F)+M+`
|
|
184
184
|
`+$.slice(F);else $+=`
|
|
185
185
|
${M}`}if($=await jJ($),X.forEach((Z)=>y.add(Z)),I.cache&&I.cachePath){if(await AJ(_,$,X,I),I.debug)console.log(`Cached template ${_} with ${X.size} dependencies`)}return{contents:$,loader:"html"}}catch(X){let C=X instanceof Error?X:new lG(`Plugin processing failed: ${String(X)}`,_);if(nG.log(C,{filePath:_,buildConfig:S.config}),NJ.logDetailedError(C,{filePath:_,plugin:"bun-plugin-stx"}),I.debug)console.error("stx Plugin Error:",C);let b=C,f=b.line||null,h=b.context||null;return{contents:I.debug||IJ()?`<!DOCTYPE html>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Lv as q}from"./chunk-
|
|
2
|
+
import{Lv as q}from"./chunk-tzd81m7r.js";import{jE as L}from"./chunk-6r70w54p.js";import M from"fs";import X from"path";var y=new Map,Q=new Map;async function w(j){let z;for(let K=0;K<3;K++)try{let V=(await M.promises.stat(j)).mtime.getTime(),J=Q.get(j);if(J&&J.mtime===V)return J.content;let W=await Bun.file(j).text(),U=(await M.promises.stat(j)).mtime.getTime();if(U!==V)continue;return Q.set(j,{content:W,mtime:U}),W}catch(I){z=I;break}throw Q.delete(j),Error(`File not found: ${j}${z?` (${z.message})`:""}`)}function A(j){Q.delete(j)}function H(j){for(let B of Q.keys())if(B.startsWith(j))Q.delete(B)}var Z=null,T=null,N=null;function v(j){N=j}async function E(j=!1){let B=N??await import("././signals.js");if(j)return B.generateSignalsRuntimeDev();if(Z===null)Z=B.generateSignalsRuntime();return Z}var $=null;async function F(){if($===null){let{getRouterScript:j}=await import("stx-router");$=j()}return $}function R(){Q.clear(),Z=null,T=null,$=null}function k(j){let B={debug:j.debug===!0,middleware:(j.middleware??[]).map((z)=>({name:z.name,timing:z.timing,handler:String(z.handler)})),customDirectives:(j.customDirectives??[]).map((z)=>({name:z.name,hasEndTag:z.hasEndTag===!0,handler:String(z.handler)}))};return new Bun.CryptoHasher("sha1").update(JSON.stringify(B)).digest("hex")}async function S(j,B){try{if(!B.cachePath)return null;let z=X.resolve(B.cachePath),K=X.join(z,`${D(j)}.html`),I=X.join(z,`${D(j)}.meta.json`);if(!await q(K)||!await q(I))return null;let V=await Bun.file(I).text(),J=JSON.parse(V);if(J.cacheVersion!==B.cacheVersion)return null;if(J.optionsSignature!==k(B))return null;if((await M.promises.stat(j)).mtime.getTime()>J.mtime)return null;for(let Y of J.dependencies)if(await q(Y)){if((await M.promises.stat(Y)).mtime.getTime()>J.mtime)return null}else return null;return await Bun.file(K).text()}catch(z){return console.warn(`Cache error for ${j}:`,z),null}}async function _(j,B,z,K){try{if(!K.cachePath)return;let I=X.resolve(K.cachePath);await M.promises.mkdir(I,{recursive:!0});let V=X.join(I,`${D(j)}.html`),J=X.join(I,`${D(j)}.meta.json`),W=await M.promises.stat(j);await Bun.write(V,B);let Y={sourcePath:j,mtime:W.mtime.getTime(),dependencies:Array.from(z),cacheVersion:K.cacheVersion,optionsSignature:k(K),generatedAt:Date.now()};await Bun.write(J,JSON.stringify(Y,null,2)),y.set(j,{output:B,mtime:W.mtime.getTime(),dependencies:z})}catch(I){console.warn(`Failed to cache template ${j}:`,I)}}var b=16;function D(j){return new Bun.CryptoHasher("sha1").update(j).digest("hex").substring(0,b)}
|
|
3
3
|
export{y as ds,w as es,A as fs,H as gs,v as hs,E as is,F as js,R as ks,S as ls,_ as ms,D as ns};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ft as Y}from"./chunk-
|
|
2
|
+
import{Ft as Y}from"./chunk-r3cxnszy.js";import{Ev as X,Ku as U,Lu as V}from"./chunk-tzd81m7r.js";import{Vw as Q,Xw as T}from"./chunk-r7d26vjj.js";import O from"path";import{createHash as j}from"crypto";function D(B={}){let A=new Set;return{context:new Proxy(B,{get(z,k){if(k in z)return z[k];if(typeof k==="string"&&!k.startsWith("__"))A.add(k);return},has(z,k){if(k in z)return!0;if(typeof k==="string"&&!k.startsWith("__"))A.add(k);return!1}}),accessedKeys:A}}async function y(B,A,G={}){let z=O.resolve(B),k=await Bun.file(z).text(),Z=j("sha256").update(k).digest("hex").slice(0,16);Q();let I={};try{I=await V()}catch{}let E=[],_=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,F;while((F=_.exec(k))!==null){let $=F[1];if(/\bserver\b/.test($))E.push(F[2])}let{context:J}=D({__filename:z,__dirname:O.dirname(z)}),L=new Set,q={...U,...I,...G,buildMode:"compile",strict:!1},N=await X(k,J,z,q,L),w=Y(N),W=T();return{route:A,sourceFile:B,html:N,fragment:w,placeholders:W,hasServerScripts:E.length>0,serverScriptContent:E,dependencies:Array.from(L),contentHash:Z,streamTemplates:J.__streamTemplates}}
|
|
3
3
|
export{y as Ii};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{io as y}from"./chunk-f6s1jx8c.js";import{mo as q}from"./chunk-snj1hfpb.js";import{po as K,qo as M,ro as N,so as O}from"./chunk-yywc3yge.js";import{yo as H}from"./chunk-1k3k1tf8.js";import{Mu as X,Su as A}from"./chunk-
|
|
2
|
+
import{io as y}from"./chunk-f6s1jx8c.js";import{mo as q}from"./chunk-snj1hfpb.js";import{po as K,qo as M,ro as N,so as O}from"./chunk-yywc3yge.js";import{yo as H}from"./chunk-1k3k1tf8.js";import{Mu as X,Su as A}from"./chunk-tzd81m7r.js";import{Mz as j}from"./chunk-exfw0aqe.js";var{serve:F}=globalThis.Bun;import V from"fs";import E from"path";async function P(Y,J={}){let L=J.port||3000,Z=J.watch!==!1,B=E.resolve(Y);if(!V.existsSync(B))return console.error(`${j.red}Error: File not found: ${j.bright}${B}${j.reset}`),!1;if(!B.endsWith(".md"))return console.error(`${j.red}Error: File must have .md extension: ${j.bright}${B}${j.reset}`),!1;console.log(`${j.blue}Processing${j.reset} ${j.bright}${Y}${j.reset}...`);let _=null,$=async()=>{try{let{content:z,data:G}=await A(B,{markdown:{syntaxHighlighting:{serverSide:!0,enabled:!0,defaultTheme:X.markdown?.syntaxHighlighting?.defaultTheme||"github-dark",highlightUnknownLanguages:!0}}}),R=J.markdown?.syntaxHighlighting||X.markdown?.syntaxHighlighting,I=R?.defaultTheme||"github-dark",W=["github-dark"],k=R?.additionalThemes||[],C=[...new Set([...W,...k])].map((U)=>`<option value="${U}"${U===I?" selected":""}>${U}</option>`).join(`
|
|
3
3
|
`);return _=`
|
|
4
4
|
<!DOCTYPE html>
|
|
5
5
|
<html lang="en">
|