@absolutejs/absolute 0.3.1 → 0.3.2

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.
Files changed (76) hide show
  1. package/build/HomeIndex.paddd8c9.js +20725 -0
  2. package/build/NotAuthorizedIndex.7em4g7an.js +20717 -0
  3. package/build/ProtectedIndex.k3vgnatp.js +22282 -0
  4. package/build/TestingIndex.j74ezacm.js +33877 -0
  5. package/build/assets/favicon.ico +0 -0
  6. package/build/assets/jpeg/mercadolibre-logo.jpeg +0 -0
  7. package/build/assets/jpeg/yahoo-Icon.jpeg +0 -0
  8. package/build/assets/png/Facebook_Logo_Primary.png +0 -0
  9. package/build/assets/png/LI-In-Bug.png +0 -0
  10. package/build/assets/png/LINE_Brand_icon.png +0 -0
  11. package/build/assets/png/Okta_Wordmark_Black_S.png +0 -0
  12. package/build/assets/png/Polar_logo_black_web.png +0 -0
  13. package/build/assets/png/SLA-Slack-from-Salesforce-logo.png +0 -0
  14. package/build/assets/png/Synology_logo_Standard.png +0 -0
  15. package/build/assets/png/Zoom_Logo_Bloom_RGB.png +0 -0
  16. package/build/assets/png/naver-btnD_icon_circle.png +0 -0
  17. package/build/assets/png/naver-btnG_icon_circle.png +0 -0
  18. package/build/assets/png/osu!logo.png +0 -0
  19. package/build/assets/png/twitter-logo-black.png +0 -0
  20. package/build/assets/svg/42-logo.svg +1 -0
  21. package/build/assets/svg/DA_Alert_Color-Logo.svg +27 -0
  22. package/build/assets/svg/Figma-Icon-(Full-color).svg +7 -0
  23. package/build/assets/svg/GitHub_Invertocat_Dark.svg +14 -0
  24. package/build/assets/svg/Microsoft-Entra-ID-color-icon.svg +9 -0
  25. package/build/assets/svg/PATREON_SYMBOL_1_BLACK_RGB.svg +8 -0
  26. package/build/assets/svg/Reddit_Icon_FullColor.svg +142 -0
  27. package/build/assets/svg/amazoncognito-logo.svg +1 -0
  28. package/build/assets/svg/anilist-logo.svg +1 -0
  29. package/build/assets/svg/apple-logo.svg +1 -0
  30. package/build/assets/svg/atlassian-logo.svg +1 -0
  31. package/build/assets/svg/auth0-logo.svg +1 -0
  32. package/build/assets/svg/authentik-logo.svg +1 -0
  33. package/build/assets/svg/autodesk-logo.svg +1 -0
  34. package/build/assets/svg/battlenet-logo.svg +1 -0
  35. package/build/assets/svg/bitbucket-logo.svg +1 -0
  36. package/build/assets/svg/box-logo.svg +1 -0
  37. package/build/assets/svg/bungie-logo.svg +1 -0
  38. package/build/assets/svg/coinbase-logo.svg +1 -0
  39. package/build/assets/svg/discord-logo.svg +1 -0
  40. package/build/assets/svg/dribbble-logo.svg +1 -0
  41. package/build/assets/svg/dropbox-logo.svg +1 -0
  42. package/build/assets/svg/epicgames-logo.svg +1 -0
  43. package/build/assets/svg/etsy-logo.svg +1 -0
  44. package/build/assets/svg/gitea-logo.svg +1 -0
  45. package/build/assets/svg/gitlab-logo.svg +1 -0
  46. package/build/assets/svg/google-logo.svg +7 -0
  47. package/build/assets/svg/intuit-logo.svg +4 -0
  48. package/build/assets/svg/kakao-logo.svg +1 -0
  49. package/build/assets/svg/keycloak-logo.svg +1 -0
  50. package/build/assets/svg/kick-logo.svg +1 -0
  51. package/build/assets/svg/lichess-logo.svg +1 -0
  52. package/build/assets/svg/linear-logo.svg +1 -0
  53. package/build/assets/svg/logomark_black.svg +25 -0
  54. package/build/assets/svg/mastadon-logo-purple.svg +10 -0
  55. package/build/assets/svg/mercadopago-logo.svg +1 -0
  56. package/build/assets/svg/myanimelist-logo.svg +1 -0
  57. package/build/assets/svg/notion-logo.svg +1 -0
  58. package/build/assets/svg/rgb-tiltify22_mark_blue.svg +3 -0
  59. package/build/assets/svg/roblox-logo.svg +1 -0
  60. package/build/assets/svg/salesforce-logo.svg +1 -0
  61. package/build/assets/svg/shikimori-logo.svg +1 -0
  62. package/build/assets/svg/spotify-Primary_Logo_Green_RGB.svg +1 -0
  63. package/build/assets/svg/start.gg_Icon_RGB.svg +15 -0
  64. package/build/assets/svg/strava-logo.svg +1 -0
  65. package/build/assets/svg/tiktok-logo.svg +1 -0
  66. package/build/assets/svg/twitch-glitch_flat_purple.svg +21 -0
  67. package/build/assets/svg/vk-logo.svg +1 -0
  68. package/build/assets/svg/workos-logo-color.svg +21 -0
  69. package/build/assets/svg/yandex-icon_grad_circ.svg +20 -0
  70. package/dist/index.js +3 -3
  71. package/dist/src/core/build.d.ts +2 -16
  72. package/dist/src/core/types.d.ts +15 -0
  73. package/dist/src/plugins/networkingPlugin.d.ts +4 -2
  74. package/package.json +3 -2
  75. package/src/core/build.ts +18 -45
  76. package/src/core/types.ts +16 -0
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 23.0.6, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 2400 2800" style="enable-background:new 0 0 2400 2800;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#FFFFFF;}
7
+ .st1{fill:#9146FF;}
8
+ </style>
9
+ <title>Asset 2</title>
10
+ <g>
11
+ <polygon class="st0" points="2200,1300 1800,1700 1400,1700 1050,2050 1050,1700 600,1700 600,200 2200,200 "/>
12
+ <g>
13
+ <g id="Layer_1-2">
14
+ <path class="st1" d="M500,0L0,500v1800h600v500l500-500h400l900-900V0H500z M2200,1300l-400,400h-400l-350,350v-350H600V200h1600
15
+ V1300z"/>
16
+ <rect x="1700" y="550" class="st1" width="200" height="600"/>
17
+ <rect x="1150" y="550" class="st1" width="200" height="600"/>
18
+ </g>
19
+ </g>
20
+ </g>
21
+ </svg>
@@ -0,0 +1 @@
1
+ <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>VK</title><path d="m9.489.004.729-.003h3.564l.73.003.914.01.433.007.418.011.403.014.388.016.374.021.36.025.345.03.333.033c1.74.196 2.933.616 3.833 1.516.9.9 1.32 2.092 1.516 3.833l.034.333.029.346.025.36.02.373.025.588.012.41.013.644.009.915.004.98-.001 3.313-.003.73-.01.914-.007.433-.011.418-.014.403-.016.388-.021.374-.025.36-.03.345-.033.333c-.196 1.74-.616 2.933-1.516 3.833-.9.9-2.092 1.32-3.833 1.516l-.333.034-.346.029-.36.025-.373.02-.588.025-.41.012-.644.013-.915.009-.98.004-3.313-.001-.73-.003-.914-.01-.433-.007-.418-.011-.403-.014-.388-.016-.374-.021-.36-.025-.345-.03-.333-.033c-1.74-.196-2.933-.616-3.833-1.516-.9-.9-1.32-2.092-1.516-3.833l-.034-.333-.029-.346-.025-.36-.02-.373-.025-.588-.012-.41-.013-.644-.009-.915-.004-.98.001-3.313.003-.73.01-.914.007-.433.011-.418.014-.403.016-.388.021-.374.025-.36.03-.345.033-.333c.196-1.74.616-2.933 1.516-3.833.9-.9 2.092-1.32 3.833-1.516l.333-.034.346-.029.36-.025.373-.02.588-.025.41-.012.644-.013.915-.009ZM6.79 7.3H4.05c.13 6.24 3.25 9.99 8.72 9.99h.31v-3.57c2.01.2 3.53 1.67 4.14 3.57h2.84c-.78-2.84-2.83-4.41-4.11-5.01 1.28-.74 3.08-2.54 3.51-4.98h-2.58c-.56 1.98-2.22 3.78-3.8 3.95V7.3H10.5v6.92c-1.6-.4-3.62-2.34-3.71-6.92Z"/></svg>
@@ -0,0 +1,21 @@
1
+ <svg version="1.1" id="Layer_1" xmlns:x="ns_extend;" xmlns:i="ns_ai;" xmlns:graph="ns_graphs;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 55.4 48" style="enable-background:new 0 0 55.4 48;" xml:space="preserve">
2
+ <style type="text/css">
3
+ .st0{fill:#6363F1;}
4
+ </style>
5
+ <metadata>
6
+ <sfw xmlns="ns_sfw;">
7
+ <slices>
8
+ </slices>
9
+ <sliceSourceBounds bottomLeftOrigin="true" height="48" width="55.4" x="55.4" y="-228.6">
10
+ </sliceSourceBounds>
11
+ </sfw>
12
+ </metadata>
13
+ <g>
14
+ <path id="logo-icon" class="st0" d="M0,24c0,1.1,0.3,2.1,0.8,3l9.7,16.8c1,1.7,2.5,3.1,4.4,3.7c3.6,1.2,7.5-0.3,9.4-3.5l2.3-4.1
15
+ l-9.2-16l9.8-16.9L29.5,3c0.7-1.2,1.6-2.2,2.7-3H17.2c-2.6,0-5.1,1.4-6.4,3.7L0.8,21C0.3,21.9,0,22.9,0,24z">
16
+ </path>
17
+ <path id="logo-icon_1_" class="st0" d="M55.4,24c0-1.1-0.3-2.1-0.8-3l-9.8-17c-1.9-3.3-5.8-4.7-9.4-3.5c-1.9,0.6-3.4,2-4.4,3.7
18
+ L28.7,8L38,24l-9.8,16.9L25.9,45c-0.7,1.2-1.6,2.2-2.7,3h15.1c2.6,0,5.1-1.4,6.4-3.7l10-17.3C55.1,26.1,55.4,25.1,55.4,24z">
19
+ </path>
20
+ </g>
21
+ </svg>
@@ -0,0 +1,20 @@
1
+ <svg width="120" height="120" viewBox="0 0 120 120" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_2488_6932)">
3
+ <path d="M20 60C20 37.9086 37.9086 20 60 20V20C82.0914 20 100 37.9086 100 60V60C100 82.0914 82.0914 100 60 100V100C37.9086 100 20 82.0914 20 60V60Z" fill="white"/>
4
+ <path d="M59.9998 120C45.0899 119.64 39.1877 109.673 37.3861 100.047C36.4082 94.8144 36.8371 86.1138 37.3861 83.0083C38.2783 77.9468 39.7196 70.672 41.3152 62.2305C43.5972 50.1344 49.6538 43.2542 62.7279 40.8007L84.1132 36.7167C84.6794 33.5425 85.7533 25.1358 84.7753 19.9542C82.9566 10.2259 75.4588 0.154419 60.24 2.17953e-06C27.0916 5.07745e-06 -0.000214137 26.8516 -0.000211239 60C-0.000208341 93.1484 26.8514 120 59.9998 120Z" fill="url(#paint0_linear_2488_6932)"/>
5
+ <path d="M59.9998 0C74.9097 0.360309 82.2874 10.346 84.089 19.9714C85.067 25.2045 83.1625 33.8862 82.6134 36.9917C81.7212 42.0532 80.28 49.328 78.6843 57.7695C76.4024 69.8656 70.3458 76.7458 57.2717 79.1993L37.3709 83.1066C36.8047 86.2807 34.9345 94.8595 35.9125 100.041C37.7312 109.769 44.5408 119.846 59.7596 120C92.908 120 120 93.1484 120 60C120 26.8516 93.1482 0 59.9998 0Z" fill="url(#paint1_linear_2488_6932)"/>
6
+ </g>
7
+ <defs>
8
+ <linearGradient id="paint0_linear_2488_6932" x1="-0.000431424" y1="120" x2="94.4319" y2="6.72576" gradientUnits="userSpaceOnUse">
9
+ <stop stop-color="#D2DFFF"/>
10
+ <stop offset="1" stop-color="#4E7FFF"/>
11
+ </linearGradient>
12
+ <linearGradient id="paint1_linear_2488_6932" x1="120" y1="-2.85362e-06" x2="24.0889" y2="109.927" gradientUnits="userSpaceOnUse">
13
+ <stop stop-color="#D2DFFF"/>
14
+ <stop offset="1" stop-color="#4E7FFF"/>
15
+ </linearGradient>
16
+ <clipPath id="clip0_2488_6932">
17
+ <rect width="120" height="120" fill="white"/>
18
+ </clipPath>
19
+ </defs>
20
+ </svg>
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- var pt=60,C=1000,O=60000,It=60,mt=24,Et=86400000,x=2,h=3000;import{rm as P,mkdir as A,writeFile as tt}from"fs/promises";import{join as n,basename as ot}from"path";import{cwd as rt,exit as nt}from"process";var{$:D,build:st,Glob:v}=globalThis.Bun;import{readFile as Z,writeFile as k}from"fs/promises";var{Glob:F}=globalThis.Bun;var H=async(o,s)=>{let r=new F("*.html"),t=[];for await(let c of r.scan({cwd:s,absolute:!0}))t.push(c);for(let c of t){let a=await Z(c,"utf8");for(let[I,_]of Object.entries(o)){let N=I.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=new RegExp(`(<script[^>]+src=["'])(/?(?:.*\\/)?${N})(?:\\.[^."'/]+)?(\\.js)(["'][^>]*>)`,"g");a=a.replace(d,(u,i,g,m,S)=>{return`${i}${_}${S}`})}await k(c,a,"utf8")}};var Mt=async({buildDir:o="build",assetsDir:s,reactIndexDir:r,javascriptDir:t,typeScriptDir:c,reactPagesDir:a,htmlDir:I,htmxDir:_,tailwind:N})=>{let d=performance.now(),u=rt(),i=n(u,o),g=s&&n(u,s),m=r&&n(u,r),S=t&&n(u,t),b=c&&n(u,c),U=a&&n(u,a),l=I&&n(u,I),R=_&&n(u,_);await P(i,{force:!0,recursive:!0}),await A(i),U&&m&&await it(U,m);let G=m&&await y(m,"*.tsx"),J=S&&await y(S,"*.js"),K=b&&await y(b,"*.ts"),T=[...G??[],...J??[],...K??[]];if(T.length===0)return console.warn("No entry points found, skipping build"),null;let{logs:Q,outputs:V}=await st({entrypoints:T,format:"esm",naming:"[dir]/[name].[hash].[ext]",outdir:i,target:"bun"}).catch((e)=>{console.error("Build failed:",e),nt(1)});if(Q.forEach((e)=>{if(e.level==="error")console.error(e);else if(e.level==="warning")console.warn(e);else if(e.level==="info"||e.level==="debug")console.info(e)}),g&&await D`cp -R ${g} ${i}`,l)await A(n(i,"html")),await D`cp -R ${l} ${n(i)}`;if(R)await A(n(i,"htmx")),await D`cp -R ${R} ${n(i)}`;if(N)await D`tailwindcss -i ${N.input} -o ${n(i,N.output)}`;let j=V.reduce((e,B)=>{let p=B.path;if(p.startsWith(i))p=p.slice(i.length);p=p.replace(/^\/+/,"");let w=p.split("/").pop();if(!w)return e;let M=`.${B.hash}.`;if(!w.includes(M))throw new Error(`Expected hash delimiter ${M} in ${w}`);let[X]=w.split(M);return e[X]="/"+p,e},{});l&&await H(j,l);let E=performance.now()-d,f;if(E<C)f=`${E.toFixed(x)}ms`;else if(E<O)f=`${(E/C).toFixed(x)}s`;else f=`${(E/O).toFixed(x)}m`;return console.log(`Build completed in ${f}`),j},it=async(o,s)=>{await P(s,{force:!0,recursive:!0}),await A(s);let r=new v("*.*"),t=[];for await(let a of r.scan({cwd:o}))t.push(a);let c=t.map(async(a)=>{let I=ot(a),[_]=I.split("."),N=["import { hydrateRoot } from 'react-dom/client';",`import { ${_} } from '../pages/${_}';
3
- `,`hydrateRoot(document, <${_} />);`].join(`
4
- `);return tt(n(s,`${_}Index.tsx`),N)});await Promise.all(c)},y=async(o,s)=>{let r=[],t=new v(s);for await(let c of t.scan({absolute:!0,cwd:o}))r.push(c);return r};import{createElement as et}from"react";import{renderToReadableStream as ct}from"react-dom/server.browser";var bt=async(o,s)=>{let r=et(o),t=await ct(r,{bootstrapModules:[s]});return new Response(t,{headers:{"Content-Type":"text/html"}})},Ut=(o)=>Bun.file(o);import{argv as _t}from"process";var{env:W}=globalThis.Bun;import at from"os";var Y=()=>{let o=at.networkInterfaces(),r=Object.values(o).flat().filter((t)=>t!==void 0).find((t)=>t.family==="IPv4"&&!t.internal);if(r)return r.address;return console.warn("No IP address found, falling back to localhost"),"localhost"};var L=W.HOST??"localhost",$=W.PORT??h,q,ut=_t,z=ut.includes("--host");if(z)q=Y(),L="0.0.0.0";var qt=(o)=>o.listen({hostname:L,port:$},()=>{if(z)console.log(`Server started on http://localhost:${$}`),console.log(`Server started on network: http://${q}:${$}`);else console.log(`Server started on http://${L}:${$}`)});export{H as updateScriptTags,qt as networkingPlugin,bt as handleReactPageRequest,Ut as handleHTMLPageRequest,Y as getLocalIPAddress,Mt as build,x as TIME_PRECISION,pt as SECONDS_IN_A_MINUTE,It as MINUTES_IN_AN_HOUR,C as MILLISECONDS_IN_A_SECOND,O as MILLISECONDS_IN_A_MINUTE,Et as MILLISECONDS_IN_A_DAY,mt as HOURS_IN_A_DAY,h as DEFAULT_PORT};
2
+ var it=60,C=1000,O=60000,et=60,_t=24,ct=86400000,x=2,b=3000;import{rm as T,mkdir as $,writeFile as J}from"fs/promises";import{join as _,basename as K}from"path";import{cwd as Q,exit as V}from"process";var{$:d,build:X,Glob:B}=globalThis.Bun;import{readFile as q,writeFile as z}from"fs/promises";var{Glob:G}=globalThis.Bun;var y=async(n,s)=>{let o=new G("*.html"),t=[];for await(let c of o.scan({cwd:s,absolute:!0}))t.push(c);for(let c of t){let N=await q(c,"utf8");for(let[I,i]of Object.entries(n)){let r=I.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),E=new RegExp(`(<script[^>]+src=["'])(/?(?:.*\\/)?${r})(?:\\.[^."'/]+)?(\\.js)(["'][^>]*>)`,"g");N=N.replace(E,(a,f,p,A,L)=>{return`${f}${i}${L}`})}await z(c,N,"utf8")}};var xt=async({buildDirectory:n="build",assetsDirectory:s,reactDirectory:o,html:t,htmxDirectory:c,tailwind:N})=>{let I=performance.now(),i=Q(),r=_(i,n),E=s&&_(i,s),a=o&&_(i,o,"indexes"),f=o&&_(i,o,"pages"),p=t?.directory?_(i,t.directory):void 0,A=c&&_(i,c);await T(r,{force:!0,recursive:!0}),await $(r),f&&a&&await Z(f,a);let U=[...(a&&await k(a,"*.tsx"))??[]];if(U.length===0)return console.warn("No entry points found, skipping build"),null;let{logs:h,outputs:v}=await X({entrypoints:U,format:"esm",naming:"[dir]/[name].[hash].[ext]",outdir:r,target:"bun"}).catch((e)=>{console.error("Build failed:",e),V(1)});if(h.forEach((e)=>{if(e.level==="error")console.error(e);else if(e.level==="warning")console.warn(e);else if(e.level==="info"||e.level==="debug")console.info(e)}),E&&await d`cp -R ${E} ${r}`,p)await $(_(r,"html")),await d`cp -R ${p} ${_(r)}`;if(A)await $(_(r,"htmx")),await d`cp -R ${A} ${_(r)}`;if(N)await d`tailwindcss -i ${N.input} -o ${_(r,N.output)}`;let R=v.reduce((e,g)=>{let u=g.path;if(u.startsWith(r))u=u.slice(r.length);u=u.replace(/^\/+/,"");let l=u.split("/").pop();if(!l)return e;let M=`.${g.hash}.`;if(!l.includes(M))throw new Error(`Expected hash delimiter ${M} in ${l}`);let[W]=l.split(M);return e[W]="/"+u,e},{});p&&await y(R,p);let m=performance.now()-I,S;if(m<C)S=`${m.toFixed(x)}ms`;else if(m<O)S=`${(m/C).toFixed(x)}s`;else S=`${(m/O).toFixed(x)}m`;return console.log(`Build completed in ${S}`),R},Z=async(n,s)=>{await T(s,{force:!0,recursive:!0}),await $(s);let o=new B("*.*"),t=[];for await(let N of o.scan({cwd:n}))t.push(N);let c=t.map(async(N)=>{let I=K(N),[i]=I.split("."),r=["import { hydrateRoot } from 'react-dom/client';",`import { ${i} } from '../pages/${i}';
3
+ `,`hydrateRoot(document, <${i} />);`].join(`
4
+ `);return J(_(s,`${i}Index.tsx`),r)});await Promise.all(c)},k=async(n,s)=>{let o=[],t=new B(s);for await(let c of t.scan({absolute:!0,cwd:n}))o.push(c);return o};import{createElement as F}from"react";import{renderToReadableStream as tt}from"react-dom/server.browser";var Mt=async(n,s)=>{let o=F(n),t=await tt(o,{bootstrapModules:[s]});return new Response(t,{headers:{"Content-Type":"text/html"}})},Ct=(n)=>Bun.file(n);import{argv as nt}from"process";var{env:j}=globalThis.Bun;import ot from"os";var H=()=>{let n=ot.networkInterfaces(),o=Object.values(n).flat().filter((t)=>t!==void 0).find((t)=>t.family==="IPv4"&&!t.internal);if(o)return o.address;return console.warn("No IP address found, falling back to localhost"),"localhost"};var D=j.HOST??"localhost",w=j.PORT??b,P,rt=nt,Y=rt.includes("--host");if(Y)P=H(),D="0.0.0.0";var Ht=(n)=>n.listen({hostname:D,port:w},()=>{if(Y)console.log(`Server started on http://localhost:${w}`),console.log(`Server started on network: http://${P}:${w}`);else console.log(`Server started on http://${D}:${w}`)});export{y as updateScriptTags,Ht as networkingPlugin,Mt as handleReactPageRequest,Ct as handleHTMLPageRequest,H as getLocalIPAddress,xt as build,x as TIME_PRECISION,it as SECONDS_IN_A_MINUTE,et as MINUTES_IN_AN_HOUR,C as MILLISECONDS_IN_A_SECOND,O as MILLISECONDS_IN_A_MINUTE,ct as MILLISECONDS_IN_A_DAY,_t as HOURS_IN_A_DAY,b as DEFAULT_PORT};
@@ -1,16 +1,2 @@
1
- type BuildConfig = {
2
- buildDir?: string;
3
- assetsDir?: string;
4
- reactIndexDir?: string;
5
- javascriptDir?: string;
6
- typeScriptDir?: string;
7
- reactPagesDir?: string;
8
- htmlDir?: string;
9
- htmxDir?: string;
10
- tailwind?: {
11
- input: string;
12
- output: string;
13
- };
14
- };
15
- export declare const build: ({ buildDir, assetsDir, reactIndexDir, javascriptDir, typeScriptDir, reactPagesDir, htmlDir, htmxDir, tailwind }: BuildConfig) => Promise<Record<string, string> | null>;
16
- export {};
1
+ import { BuildConfig } from "./types";
2
+ export declare const build: ({ buildDirectory, assetsDirectory, reactDirectory, html, htmxDirectory, tailwind }: BuildConfig) => Promise<Record<string, string> | null>;
@@ -0,0 +1,15 @@
1
+ export type HTMLScriptOption = "ts" | "js" | "ts+ssr" | "js+ssr" | undefined;
2
+ export type BuildConfig = {
3
+ buildDirectory?: string;
4
+ assetsDirectory?: string;
5
+ reactDirectory?: string;
6
+ html?: {
7
+ directory?: string;
8
+ scriptingOption: HTMLScriptOption;
9
+ };
10
+ htmxDirectory?: string;
11
+ tailwind?: {
12
+ input: string;
13
+ output: string;
14
+ };
15
+ };
@@ -1,15 +1,17 @@
1
1
  import { Elysia } from "elysia";
2
- export declare const networkingPlugin: (app: Elysia) => Elysia<"", false, {
2
+ export declare const networkingPlugin: (app: Elysia) => Elysia<"", {
3
3
  decorator: {};
4
4
  store: {};
5
5
  derive: {};
6
6
  resolve: {};
7
7
  }, {
8
- type: {};
8
+ typebox: import("@sinclair/typebox").TModule<{}>;
9
9
  error: {};
10
10
  }, {
11
11
  schema: {};
12
12
  macro: {};
13
+ macroFn: {};
14
+ parser: {};
13
15
  }, {}, {
14
16
  derive: {};
15
17
  resolve: {};
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@absolutejs/absolute",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "A fullstack meta-framework for building web applications with TypeScript",
5
5
  "repository": {
6
6
  "type": "git",
7
- "url": "https://github.com/alexkahndev/absolutejs.git"
7
+ "url": "https://github.com/absolutejs/absolutejs.git"
8
8
  },
9
9
  "main": "./dist/index.js",
10
10
  "types": "./dist/src/index.d.ts",
@@ -23,6 +23,7 @@
23
23
  "react-dom": ">= 19.1.0"
24
24
  },
25
25
  "devDependencies": {
26
+ "elysia": "1.2.25",
26
27
  "@elysiajs/static": "1.0.2",
27
28
  "@types/bun": "1.1.1",
28
29
  "@types/react": "19.1.0",
package/src/core/build.ts CHANGED
@@ -8,48 +8,31 @@ import {
8
8
  TIME_PRECISION
9
9
  } from "../constants";
10
10
  import { updateScriptTags } from "../utils/updateScriptTags";
11
-
12
- type BuildConfig = {
13
- buildDir?: string;
14
- assetsDir?: string;
15
- reactIndexDir?: string;
16
- javascriptDir?: string;
17
- typeScriptDir?: string;
18
- reactPagesDir?: string;
19
- htmlDir?: string;
20
- htmxDir?: string;
21
- tailwind?: {
22
- input: string;
23
- output: string;
24
- };
25
- };
11
+ import { BuildConfig } from "./types";
26
12
 
27
13
  export const build = async ({
28
- buildDir = "build",
29
- assetsDir,
30
- reactIndexDir,
31
- javascriptDir,
32
- typeScriptDir,
33
- reactPagesDir,
34
- htmlDir,
35
- htmxDir,
14
+ buildDirectory = "build",
15
+ assetsDirectory,
16
+ reactDirectory,
17
+ html,
18
+ htmxDirectory,
36
19
  tailwind
37
20
  }: BuildConfig) => {
38
21
  const start = performance.now();
39
22
 
40
23
  const projectRoot = cwd();
41
- const buildDirAbsolute = join(projectRoot, buildDir);
42
- const assetsDirAbsolute = assetsDir && join(projectRoot, assetsDir);
24
+ const buildDirAbsolute = join(projectRoot, buildDirectory);
25
+ const assetsDirAbsolute =
26
+ assetsDirectory && join(projectRoot, assetsDirectory);
43
27
  const reactIndexDirAbsolute =
44
- reactIndexDir && join(projectRoot, reactIndexDir);
45
- const javascriptDirAbsolute =
46
- javascriptDir && join(projectRoot, javascriptDir);
47
- const typeScriptDirAbsolute =
48
- typeScriptDir && join(projectRoot, typeScriptDir);
28
+ reactDirectory && join(projectRoot, reactDirectory, "indexes");
49
29
  const reactPagesDirAbsolute =
50
- reactPagesDir && join(projectRoot, reactPagesDir);
51
- const htmlDirAbsolute = htmlDir && join(projectRoot, htmlDir);
52
- const htmxDirAbsolute = htmxDir && join(projectRoot, htmxDir);
30
+ reactDirectory && join(projectRoot, reactDirectory, "pages");
31
+ const htmlDirAbsolute = html?.directory
32
+ ? join(projectRoot, html.directory)
33
+ : undefined;
34
+
35
+ const htmxDirAbsolute = htmxDirectory && join(projectRoot, htmxDirectory);
53
36
 
54
37
  await rm(buildDirAbsolute, { force: true, recursive: true });
55
38
  await mkdir(buildDirAbsolute);
@@ -64,18 +47,8 @@ export const build = async ({
64
47
  const reactEntryPaths =
65
48
  reactIndexDirAbsolute &&
66
49
  (await scanEntryPoints(reactIndexDirAbsolute, "*.tsx"));
67
- const javascriptEntryPaths =
68
- javascriptDirAbsolute &&
69
- (await scanEntryPoints(javascriptDirAbsolute, "*.js"));
70
- const typeScriptEntryPaths =
71
- typeScriptDirAbsolute &&
72
- (await scanEntryPoints(typeScriptDirAbsolute, "*.ts"));
73
-
74
- const entryPaths = [
75
- ...(reactEntryPaths ?? []),
76
- ...(javascriptEntryPaths ?? []),
77
- ...(typeScriptEntryPaths ?? [])
78
- ];
50
+
51
+ const entryPaths = [...(reactEntryPaths ?? [])];
79
52
 
80
53
  if (entryPaths.length === 0) {
81
54
  console.warn("No entry points found, skipping build");
@@ -0,0 +1,16 @@
1
+ export type HTMLScriptOption = "ts" | "js" | "ts+ssr" | "js+ssr" | undefined;
2
+
3
+ export type BuildConfig = {
4
+ buildDirectory?: string;
5
+ assetsDirectory?: string;
6
+ reactDirectory?: string;
7
+ html?: {
8
+ directory?: string;
9
+ scriptingOption: HTMLScriptOption;
10
+ };
11
+ htmxDirectory?: string;
12
+ tailwind?: {
13
+ input: string;
14
+ output: string;
15
+ };
16
+ };