rari 0.14.0 → 0.14.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 (47) hide show
  1. package/dist/cli.mjs +1 -1
  2. package/dist/client.d.mts +5 -6
  3. package/dist/client.mjs +1 -1
  4. package/dist/{get-client-component-DOUGb2xc.mjs → get-client-component-B4Y2T40R.mjs} +1 -1
  5. package/dist/headers.d.mts +1 -1
  6. package/dist/image/index.mjs +1 -1
  7. package/dist/index.d.mts +3 -3
  8. package/dist/mdx.mjs +1 -1
  9. package/dist/{preload-modules-C1zd75Lc.mjs → preload-modules-xvnJ_8eh.mjs} +2 -2
  10. package/dist/proxy/RariRequest.d.mts +1 -1
  11. package/dist/proxy/RariResponse.d.mts +1 -1
  12. package/dist/{railway-BQNsu-l4.mjs → railway-bxKRJ0Cg.mjs} +1 -1
  13. package/dist/regex-constants-B4P386OY.mjs +1 -0
  14. package/dist/{render-DHDWCmpf.mjs → render-CXNCiz-E.mjs} +1 -1
  15. package/dist/router.d.mts +1 -3
  16. package/dist/router.mjs +1 -1
  17. package/dist/runtime/AppRouterProvider.d.mts +1 -2
  18. package/dist/runtime/AppRouterProvider.mjs +3 -3
  19. package/dist/runtime/ErrorBoundaryWrapper.mjs +1 -1
  20. package/dist/runtime/entry-client.mjs +2 -2
  21. package/dist/runtime/react-server-dom-shim.mjs +1 -1
  22. package/dist/runtime/rsc-client-runtime.d.mts +1 -1
  23. package/dist/runtime/rsc-client-runtime.mjs +2 -2
  24. package/dist/runtime/vendor/react-flight-client/ReactFlightClient.d.mts +1 -1
  25. package/dist/runtime/vendor/react-flight-client/ReactFlightClientConfig.d.mts +1 -1
  26. package/dist/runtime/vendor/react-flight-client/ReactFlightClientConfig.mjs +1 -1
  27. package/dist/{sitemap-generator-DXQL4RtJ.mjs → sitemap-generator-BTG9lURQ.mjs} +1 -1
  28. package/dist/{types-CC9LMWMo.d.mts → types-m74grfbN.d.mts} +1 -0
  29. package/dist/vite.d.mts +4 -4
  30. package/dist/vite.mjs +118 -17
  31. package/package.json +10 -10
  32. package/dist/regex-constants-CmOAY1_W.mjs +0 -1
  33. package/dist/rolldown-runtime-DR3Ue2cl.mjs +0 -1
  34. package/dist/routes-C8Txll7p.mjs +0 -1
  35. package/dist/server-build-JfPg3Cjl.mjs +0 -166
  36. /package/dist/{ReactFlightClientConfig-DdCyeIZx.d.mts → ReactFlightClientConfig-C_nD8rsi.d.mts} +0 -0
  37. /package/dist/{alias-resolver-D1GHg-4o.mjs → alias-resolver-BintHkb_.mjs} +0 -0
  38. /package/dist/{constants-B68HGlJT.mjs → constants-De7aSsCq.mjs} +0 -0
  39. /package/dist/{metadata-route-D0xSj7FK.d.mts → metadata-route-85WvBQcW.d.mts} +0 -0
  40. /package/dist/{navigate-hfIqe3MK.mjs → navigate-DuyUa6qD.mjs} +0 -0
  41. /package/dist/{robots-generator-Byiwomr5.mjs → robots-generator-l2O5neuR.mjs} +0 -0
  42. /package/dist/{runtime-client-CbbckLpl.mjs → runtime-client-DHeO6y_7.mjs} +0 -0
  43. /package/dist/{server-config-CGmxgSPb.d.mts → server-config-CwWYmtA0.d.mts} +0 -0
  44. /package/dist/{timer-utils-DnyOf3e6.mjs → timer-utils-Duul5JHq.mjs} +0 -0
  45. /package/dist/{types-DOgYNbON.d.mts → types-3dq9RGI5.d.mts} +0 -0
  46. /package/dist/{types-R2tg78dF.d.mts → types-zPQ3RHgH.d.mts} +0 -0
  47. /package/dist/{utils-BK4N0qFr-BCy19luN.mjs → utils-BK4N0qFr-QFbF96eD.mjs} +0 -0
@@ -1,166 +0,0 @@
1
- import{t as e}from"./rolldown-runtime-DR3Ue2cl.mjs";import{C as t,a as n,c as r,d as i,i as a,o,r as s,s as c,w as l}from"./regex-constants-CmOAY1_W.mjs";import{t as u}from"./alias-resolver-D1GHg-4o.mjs";import d from"node:fs";import f from"node:path";import p from"node:process";import{pathToFileURL as m}from"node:url";import{build as h}from"rolldown";const g=new Set([`return`,`throw`,`case`,`typeof`,`instanceof`,`new`,`delete`,`void`,`in`,`of`]);function _(e){return e===` `||e===` `||e===`\r`||e===`
2
- `||e===`\u2028`||e===`\u2029`||e===``}function v(e){return e===`\r`||e===`
3
- `||e===`\u2028`||e===`\u2029`}function y(e,t,n){for(;t<n&&_(e[t]);)t++;return t}function b(e,t,n){for(;t<n;){let r=y(e,t,n);if(r!==t){t=r;continue}if(e[t]===`/`&&e[t+1]===`/`){t=x(e,t,n);continue}if(e[t]===`/`&&e[t+1]===`*`){t=S(e,t,n);continue}break}return t}function x(e,t,n){for(;t<n&&!v(e[t]);)t++;return t}function S(e,t,n){for(t+=2;t<n-1&&(e[t]!==`*`||e[t+1]!==`/`);)t++;return t+2}function C(e,t,n,r){for(t++;t<n;){if(e[t]===`\\`){t+=2;continue}if(e[t]===r)return t+1;t++}return t}function w(e,t,n){t++;let r=e[t]===`/`;for(r&&t++;t<n&&(O(e[t])||e[t]===`.`||e[t]===`-`);)t++;let i=+!r;for(;t<n&&i>0;){let a=e[t]===`'`||e[t]===`"`||e[t]==="`"?e[t]:null;if(a){t=C(e,t,n,a);continue}if(e[t]===`{`){t++;let r=1;for(;t<n&&r>0;){let i=e[t]===`'`||e[t]===`"`||e[t]==="`"?e[t]:null;if(i){t=C(e,t,n,i);continue}e[t]===`{`&&r++,e[t]===`}`&&r--,t++}continue}if(e[t]===`/`&&e[t+1]===`>`){i--,t+=2;continue}if(e[t]===`>`){t++,r&&i--;continue}if(e[t]===`<`){let r=e[t+1];if(r===`/`||r===`.`||r===`>`||k(r)){for(r===`/`?(i--,t++):r!==`!`&&i++,t++;t<n&&(O(e[t])||e[t]===`.`||e[t]===`-`);)t++;continue}t++;continue}t++}return t}function T(e,t){let n=0,r=e.length;for(;n<r;){if(_(e[n])){n++;continue}if(e[n]===`/`&&e[n+1]===`/`){n=x(e,n,r);continue}if(e[n]===`/`&&e[n+1]===`*`){n=S(e,n,r);continue}let i=e[n]===`'`||e[n]===`"`?e[n]:null;if(i){let a=n+1,o=C(e,n,r,i);if(o>a){let i=e.slice(a,o-1),s=o;for(;s<r;){if(_(e[s])&&!v(e[s])){s++;continue}if(v(e[s])||e[s]===`;`){if(i===t)return!0;n=s+1;break}if(e[s]===`/`&&e[s+1]===`/`){s=x(e,s,r);continue}if(e[s]===`/`&&e[s+1]===`*`){s=S(e,s,r);continue}return!1}if(s>=r)return i===t;if(s<r&&(v(e[s])||e[s]===`;`))continue;return!1}}return!1}return!1}function E(e){return T(e,`use server`)}function D(e){return T(e,`use client`)}function O(e){return!!e&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e>=`0`&&e<=`9`||e===`_`||e===`$`)}function k(e){return!!e&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e===`_`||e===`$`)}function A(e){return!e||e===`(`||e===`[`||e===`{`||e===`,`||e===`;`||e===`=`||e===`:`||e===`?`||e===`!`||e===`+`||e===`-`||e===`*`||e===`%`||e===`&`||e===`|`||e===`^`||e===`~`||e===`<`||e===`>`}function j(e,t){let n=t-1;for(;n>=0;){if(_(e[n])){n--;continue}if(n>=1&&e[n]===`/`&&e[n-1]===`*`){for(n-=2;n>=1;){if(e[n]===`*`&&e[n-1]===`/`){n-=2;break}n--}if(n<0)return;continue}if(n>=1&&e[n]===`/`&&e[n-1]===`/`){n-=2;continue}let t=n;for(;t>=0&&e[t]!==`
4
- `&&e[t]!==`\r`;)t--;let r=t+1;for(;r<n&&(e[r]===` `||e[r]===` `);)r++;if(r<n&&e[r]===`/`&&e[r+1]===`/`){n=r-1;continue}break}if(n<0||!O(e[n]))return;let r=n;for(;n>=0&&O(e[n]);)n--;return e.slice(n+1,r+1)}function M(e,t){if(A(P(e,t)))return!0;let n=j(e,t);return n?g.has(n):!1}function N(e,t,n){t++;let r=!1;for(;t<n;){if(e[t]===`\\`){t+=2;continue}if(r){e[t]===`]`&&(r=!1),t++;continue}if(e[t]===`[`){r=!0,t++;continue}if(e[t]===`/`){for(t++;t<n&&O(e[t]);)t++;return t}if(v(e[t]))return t;t++}return t}function P(e,t){let n=t-1;for(;n>=0;){if(_(e[n])){n--;continue}if(n>=1&&e[n]===`/`&&e[n-1]===`*`){for(n-=2;n>=1;){if(e[n]===`*`&&e[n-1]===`/`){n-=2;break}n--}if(n<0)return;continue}if(n>=1&&e[n]===`/`&&e[n-1]===`/`){n-=2;continue}let t=n;for(;t>=0&&e[t]!==`
5
- `&&e[t]!==`\r`;)t--;let r=t+1;for(;r<n&&(e[r]===` `||e[r]===` `);)r++;if(r<n&&e[r]===`/`&&e[r+1]===`/`){n=r-1;continue}return e[n]}}function F(e){let t=0,n=e.length;for(;t<n;){if(_(e[t])){t++;continue}if(e[t]===`/`&&e[t+1]===`/`){t=x(e,t,n);continue}if(e[t]===`/`&&e[t+1]===`*`){t=S(e,t,n);continue}let r=e[t]===`'`||e[t]===`"`||e[t]==="`"?e[t]:null;if(r){t=C(e,t,n,r);continue}if(e[t]===`/`&&e[t+1]!==`/`&&e[t+1]!==`*`&&M(e,t)){t=N(e,t,n);continue}if(e[t]===`<`){let r=e[t+1];if(r===`/`||r===`.`||r===`>`||k(r)){t=w(e,t,n);continue}t++;continue}if(e.slice(t,t+6)===`export`){let r=t+6;if(r<n&&(_(e[r])||e[r]===`{`||e[r]===`/`&&(e[r+1]===`/`||e[r+1]===`*`))){let t=b(e,r,n);if(e.slice(t,t+7)===`default`){let r=t+7;if(r>=n||!O(e[r]))return!0}if(e[t]===`{`){let r=t+1;for(;r<n&&(r=b(e,r,n),e[r]!==`}`);){let t=r;for(;r<n&&O(e[r]);)r++;let i=e.slice(t,r);if(!i)break;r=b(e,r,n);let a=!1;if(e.slice(r,r+2)===`as`){a=!0;let t=r+2;if(t<n&&!O(e[t])){r=b(e,t,n);let i=r;for(;r<n&&O(e[r]);)r++;if(e.slice(i,r)===`default`)return!0}}if(!a&&i===`default`)return!0;if(e[r]===`,`){r++;continue}if(e[r]===`}`)break;r++}}}}t++}return!1}function I(e,t){let n=null;for(let r of t)if(e.endsWith(r)&&(n??=d.existsSync(e),n))return e;for(let n of t){let t=`${e}${n}`;if(d.existsSync(t))return t}return null}function L(e,t){if(d.existsSync(e)){if(!d.statSync(e).isDirectory())return null;for(let n of t){let t=f.join(e,`index${n}`);if(d.existsSync(t))return t}}return null}var R=e({ServerComponentBuilder:()=>Z,createServerBuildPlugin:()=>$,scanDirectory:()=>Q});const z=/import\s*\(\s*["']([^"']+)["']\s*\)|import\s+["']([^"']+)["']/g,B=/from\s+['"]([^'"]+)['"]|import\s*\(\s*['"]([^'"]+)['"]\s*\)|import\s+['"]([^'"]+)['"]/g,V=/import(?:\s+(?:\w+|\{[^}]*\}|\*\s+as\s+\w+)(?:\s*,\s*(?:\w+|\{[^}]*\}|\*\s+as\s+\w+))*\s+from\s+)?['"]([^'"]+)['"]/g,H=/import\s+(\w+)\s+from\s+['"]([^'"]+)['"]/g,U=/import\s+(?:(\w+)|\{([^}]+)\})\s+from\s+['"]([^'"]+)['"];?\s*$/gm,W=/^proxy\.(?:tsx?|jsx?|mts|mjs)$/,G=/\\/g,K=/\.(tsx?|jsx?)$/,q=/\/components\/(\w+)(?:\.tsx?|\.jsx?)?$/,J=/[/\\]components[/\\](\w+)(?:\.tsx?|\.jsx?)?$/,ee=/^export\s*\{([^}]+)\};?\s*$/gm,te=/^export\s+(const|let|var)\s+(\w+)/gm,ne=/^(?:robots|sitemap)\.(?:tsx?|jsx?)$/,Y=/^node:/,X=/\\/g;var Z=class{serverComponents=new Map;serverActions=new Map;options;projectRoot;buildCache=new Map;htmlOnlyImports=new Set;fileImporters=new Map;getComponentCount(){return this.serverComponents.size+this.serverActions.size}getImportGraph(){let e=new Map;for(let[t,n]of this.fileImporters)e.set(t,new Set(n));return e}getHtmlOnlyImports(){return new Set(this.htmlOnlyImports)}constructor(e,t={}){this.projectRoot=e;let n=t.rscDir||`server`;this.options={outDir:t.outDir||f.join(e,`dist`),rscDir:n,manifestPath:t.manifestPath||f.join(n,`manifest.json`),serverConfigPath:t.serverConfigPath||f.join(n,`config.json`),minify:t.minify??p.env.NODE_ENV===`production`,alias:t.alias||{},define:t.define,csp:t.csp,cacheControl:t.cacheControl},this.parseHtmlImports()}parseHtmlImports(){let e=f.join(this.projectRoot,`index.html`);if(d.existsSync(e))try{let t=d.readFileSync(e,`utf-8`);for(let e of t.matchAll(z)){let t=e[1]||e[2];if(t.startsWith(`/src/`)){let e=f.join(this.projectRoot,t.slice(1));this.htmlOnlyImports.add(e)}}}catch(e){console.warn(`[server-build] Error parsing index.html:`,e)}}isHtmlOnlyImport(e){return this.htmlOnlyImports.has(e)}isServerComponent(e,t){if(e.includes(`node_modules`)||this.isHtmlOnlyImport(e))return!1;try{let n=t??(d.existsSync(e)?d.readFileSync(e,`utf-8`):null);return n===null?!1:!D(n)&&!E(n)}catch{return!1}}isClientComponent(e,t){try{let n=t??(d.existsSync(e)?d.readFileSync(e,`utf-8`):null);return n===null?!1:D(n)}catch{return!1}}buildImportGraph(e){this.fileImporters.clear();let t=e=>{if(!d.existsSync(e))return;let n=d.readdirSync(e,{withFileTypes:!0});for(let r of n){let n=f.join(e,r.name);if(r.isDirectory()){if(r.name===`node_modules`)continue;t(n)}else if(r.isFile()&&l.test(r.name))try{let e=d.readFileSync(n,`utf-8`),t;for(B.lastIndex=0,t=B.exec(e);t!==null;){let r=t[1]||t[2]||t[3],i=null;if(r.startsWith(`./`)||r.startsWith(`../`)){let e=f.dirname(n);i=f.resolve(e,r)}else if(r.startsWith(`@/`)){let e=r.slice(2);i=f.join(this.projectRoot,`src`,e)}if(i){let e=[``,`.ts`,`.tsx`,`.js`,`.jsx`],t=null;for(let n of e){let e=i+n;if(d.existsSync(e)&&d.statSync(e).isFile()){t=e;break}}t&&(this.fileImporters.has(t)||this.fileImporters.set(t,new Set),this.fileImporters.get(t).add(n))}t=B.exec(e)}}catch(e){e?.code!==`ENOENT`&&console.warn(`[rari] Unexpected error building import graph:`,n,e)}}};t(e)}isOnlyImportedByClientComponents(e){let t=this.fileImporters.get(e);if(!t||t.size===0)return!1;for(let e of t)if(!this.isClientComponent(e)&&!this.isOnlyImportedByClientComponents(e))return!1;return!0}addServerComponent(e,t){let n=t??d.readFileSync(e,`utf-8`);if(this.isServerAction(n)){let t=this.extractDependencies(n),r=this.hasNodeImports(n);this.serverActions.set(e,{filePath:e,originalCode:n,dependencies:t,hasNodeImports:r});return}if(!this.isServerComponent(e,n))return;let r=this.extractDependencies(n),i=this.hasNodeImports(n);this.serverComponents.set(e,{filePath:e,originalCode:n,dependencies:r,hasNodeImports:i})}isServerAction(e){return E(e)}extractDependencies(e){let t=[],n;for(V.lastIndex=0;n=V.exec(e),n!==null;){let e=n[1];!e.startsWith(`.`)&&!e.startsWith(`/`)&&!e.startsWith(`node:`)&&!this.isNodeBuiltin(e)&&t.push(e)}return[...new Set(t)]}isNodeBuiltin(e){return[`fs`,`path`,`os`,`crypto`,`util`,`stream`,`events`,`process`,`buffer`,`url`,`querystring`,`zlib`,`http`,`https`,`net`,`tls`,`child_process`,`cluster`,`worker_threads`].includes(e)}hasNodeImports(e){return e.includes(`from 'node:`)||e.includes(`from "node:`)||e.includes(`from 'fs'`)||e.includes(`from "fs"`)||e.includes(`from 'path'`)||e.includes(`from "path"`)||e.includes(`from 'os'`)||e.includes(`from "os"`)||e.includes(`from 'crypto'`)||e.includes(`from "crypto"`)||e.includes(`from 'util'`)||e.includes(`from "util"`)||e.includes(`from 'stream'`)||e.includes(`from "stream"`)||e.includes(`from 'events'`)||e.includes(`from "events"`)}async getTransformedComponentsForDevelopment(){let e=[];for(let[t]of this.serverComponents){let n=f.relative(this.projectRoot,t),r=this.getComponentId(n),i=await this.buildComponentCodeOnly(t);e.push({id:r,code:i})}for(let[t]of this.serverActions){let n=f.relative(this.projectRoot,t),r=this.getComponentId(n),i=await this.buildComponentCodeOnly(t);e.push({id:r,code:i})}return e}transformComponentImportsToGlobal(e){let t=[];for(let n of e.matchAll(H)){let[e,r,i]=n;if(!i.startsWith(`.`)&&!i.startsWith(`@`)&&!i.startsWith(`~`)&&!i.startsWith(`#`))continue;let a=null;if(i.startsWith(`.`)){if(i.includes(`/components/`)){let n=i.match(q);if(n){let i=n[1],a=[f.resolve(this.projectRoot,`src`,`components`,`${i}.tsx`),f.resolve(this.projectRoot,`src`,`components`,`${i}.ts`),f.resolve(this.projectRoot,`src`,`components`,`${i}.jsx`),f.resolve(this.projectRoot,`src`,`components`,`${i}.js`)],o=!1;for(let e of a)if(d.existsSync(e)&&this.isClientComponent(e)){o=!0;break}if(!o)continue;let s=`// Component reference: ${i}
6
- const ${r} = (props) => {
7
- let Component = globalThis['~clientComponents']?.['components/${i}']?.component
8
- || globalThis['components/${i}'];
9
-
10
- if (Component && typeof Component === 'object' && Component.default) {
11
- Component = Component.default;
12
- }
13
-
14
- if (!Component) {
15
- throw new Error('Component components/${i} not loaded');
16
- }
17
-
18
- if (typeof Component !== 'function') {
19
- throw new Error('Component components/${i} is not a function, got: ' + typeof Component);
20
- }
21
-
22
- return Component(props);
23
- }`;t.push({original:e,replacement:s})}}continue}let o=this.options.alias||{};for(let[e,t]of Object.entries(o))if(i.startsWith(`${e}/`)||i===e){let n=i.slice(e.length);a=f.join(t,n);break}if(a){let n=a.match(J);if(n){let i=n[1],o=f.isAbsolute(a)?a:f.resolve(this.projectRoot,a),s=[o,`${o}.tsx`,`${o}.ts`,`${o}.jsx`,`${o}.js`],c=!1,l=o;for(let e of s)if(d.existsSync(e)){l=e,this.isClientComponent(e)&&(c=!0);break}if(!c)continue;let u=f.relative(this.projectRoot,l),p=this.getComponentId(u),m=`// Component reference: ${i}
24
- const ${r} = (props) => {
25
- let Component = globalThis['~clientComponents']?.['${p}']?.component
26
- || globalThis['${p}'];
27
-
28
- if (Component && typeof Component === 'object' && Component.default) {
29
- Component = Component.default;
30
- }
31
-
32
- if (!Component) {
33
- throw new Error('Component ${p} not loaded');
34
- }
35
-
36
- if (typeof Component !== 'function') {
37
- throw new Error('Component ${p} is not a function, got: ' + typeof Component);
38
- }
39
-
40
- return Component(props);
41
- }`;t.push({original:e,replacement:m})}}}let n=e;for(let{original:e,replacement:r}of t)n=n.replace(e,r);return n}isPageComponent(e){return e.includes(`/app/`)||e.includes(`\\app\\`)}createBuildPlugins(e,t,n,r,a=!1){let o=f.dirname(r),s=W.test(f.basename(r)),c=this,l=new Map,p=new Map;return[{name:`virtual-module`,resolveId(t,n){if(t===e)return t;if(n===e&&(t.startsWith(`./`)||t.startsWith(`../`))){let e=f.resolve(o,t);for(let t of[`.ts`,`.tsx`,`.js`,`.jsx`,``]){let n=e+t;if(d.existsSync(n)&&d.statSync(n).isFile())return n}for(let t of[`.ts`,`.tsx`,`.js`,`.jsx`]){let n=f.join(e,`index${t}`);if(d.existsSync(n))return n}return e}return null},load(r){return r===e?{code:t,moduleType:n}:null}},{name:`resolve-client-server-boundaries`,resolveId:(t,n)=>{if(!n||n.includes(`node_modules`)||n.includes(`/packages/rari/dist`)||t.startsWith(`node:`)||c.isNodeBuiltin(t)||t===`react`||t===`react-dom`||t===`react/jsx-runtime`||t===`react/jsx-dev-runtime`)return null;let r=null;if(r=u(t,c.options.alias||{},c.projectRoot),!r&&(t.startsWith(`./`)||t.startsWith(`../`))){let i=n===e?o:f.dirname(n);r=f.resolve(i,t)}if(r)for(let e of[``,`.ts`,`.tsx`,`.js`,`.jsx`]){let t=r+e;if(d.existsSync(t)&&d.statSync(t).isFile()){if(c.isClientComponent(t)){let e=f.relative(c.projectRoot,t),n=(e.startsWith(`..`)?t:e).replace(X,`/`);return l.set(t,n),{id:`\0client-ref:${t}`}}try{let e=d.readFileSync(t,`utf-8`);if(E(e)){let n=f.relative(c.projectRoot,t),r=n.startsWith(`..`)?t:n,i=F(e);return p.set(t,{actionId:r,hasDefaultExport:i}),{id:`\0server-action:${t}`}}}catch(e){console.error(`[rari] Failed to read file for server action detection: ${t}`,e)}break}}return null},load(e){if(e.startsWith(`\0client-ref:`)){let t=e.slice(12),n=f.relative(c.projectRoot,t),r=(l.get(t)||(n.startsWith(`..`)?t:n)).replace(X,`/`);return{code:`
42
- function registerClientReference(clientReference, id, exportName) {
43
- const key = id + '#' + exportName;
44
- const clientProxy = {};
45
- Object.defineProperty(clientProxy, '$$typeof', {
46
- value: Symbol.for('react.client.reference'),
47
- enumerable: false
48
- });
49
- Object.defineProperty(clientProxy, '$$id', {
50
- value: key,
51
- enumerable: false
52
- });
53
- Object.defineProperty(clientProxy, '$$async', {
54
- value: false,
55
- enumerable: false
56
- });
57
- return clientProxy;
58
- }
59
-
60
- export default registerClientReference(null, ${JSON.stringify(r)}, "default");
61
- `,moduleType:`js`}}if(e.startsWith(`\0server-action:`)){let t=e.slice(15),n=f.relative(c.projectRoot,t).replace(X,`/`),r=n.startsWith(`src/`)?n.slice(4):n,i=f.join(c.options.outDir,c.options.rscDir,r.replace(K,`.js`)),a=m(f.resolve(c.projectRoot,i)).href;return{code:p.get(t)?.hasDefaultExport??!1?`export * from ${JSON.stringify(a)};\nexport { default } from ${JSON.stringify(a)};`:`export * from ${JSON.stringify(a)};`,moduleType:`js`}}return null}},{name:`use-transformed-server-components`,resolveId:(e,t)=>{if(!a)return null;if(e.startsWith(`file://`)){let t=e.replace(i,``);return d.existsSync(t)?{id:`\0transformed:${t}`}:null}let n=null;n=u(e,c.options.alias||{},c.projectRoot);let r=t?.startsWith(`\0`)?o:t?f.dirname(t):o;if(!n&&(e.startsWith(`./`)||e.startsWith(`../`))&&(n=f.resolve(r,e)),!n||r.includes(`node_modules`))return null;for(let e of[``,`.ts`,`.tsx`,`.js`,`.jsx`]){let t=n+e;if(d.existsSync(t)&&d.statSync(t).isFile()){if(c.isClientComponent(t))return null;let e=f.join(c.projectRoot,`src`);if(!t.startsWith(e))return null;let n=f.relative(e,t),r=f.join(c.options.outDir,c.options.rscDir,n.replace(K,`.js`));if(d.existsSync(r))return{id:`\0transformed:${r}`};break}}return null},load(e){if(e.startsWith(`\0transformed:`)){let t=e.slice(13);return{code:d.readFileSync(t,`utf-8`),moduleType:`js`}}return null}},{name:`resolve-aliases`,resolveId:e=>{if(e.startsWith(`\0`))return null;let t=c.options.alias||{};for(let[n,r]of Object.entries(t))if(e.startsWith(`${n}/`)||e===n){let t=e.slice(n.length),i=f.join(r,t),a=f.isAbsolute(i)?i:f.resolve(c.projectRoot,i);for(let e of[``,`.ts`,`.tsx`,`.js`,`.jsx`]){let t=a+e;if(d.existsSync(t)&&d.statSync(t).isFile())return t}for(let e of[`.ts`,`.tsx`,`.js`,`.jsx`]){let t=f.join(a,`index${e}`);if(d.existsSync(t))return t}return a}return null}},{name:`resolve-rari-proxy`,resolveId:e=>{if(s&&e===`rari`){let e=f.resolve(c.projectRoot,`node_modules/rari/dist/proxy/RariResponse.mjs`);if(d.existsSync(e))return e;let t=f.resolve(c.projectRoot,`node_modules/rari/src/proxy/RariResponse.ts`);if(d.existsSync(t))return t}return null}},{name:`externalize-deps`,resolveId:e=>e.startsWith(`\0`)?null:e.startsWith(`node:`)||c.isNodeBuiltin(e)||[`react`,`react-dom`,`react/jsx-runtime`,`react/jsx-dev-runtime`,`rari/image`].includes(e)?{id:e,external:!0}:e===`rari`||e===`rari/client`?null:!e.startsWith(`.`)&&!e.startsWith(`/`)?{id:e,external:!0}:null}]}async buildComponentCodeOnly(e){let t=await d.promises.readFile(e,`utf-8`),n=this.transformClientImports(t,e),r=this.isPageComponent(e),i=r?this.transformComponentImportsToGlobal(n):n,a=f.extname(e),o;o=a===`.tsx`?`tsx`:a===`.ts`?`ts`:a===`.jsx`?`jsx`:`js`;let s=`\0virtual:${e}`,c=await h({input:s,platform:`node`,write:!1,external:[Y,`react`,`react-dom`,`react/jsx-runtime`,`react/jsx-dev-runtime`],output:{format:`esm`,minify:this.options.minify},moduleTypes:{[`.${o}`]:o},resolve:{mainFields:[`module`,`main`],conditionNames:[`import`,`module`,`default`],extensions:[`.ts`,`.tsx`,`.js`,`.jsx`]},transform:{jsx:`react`,define:{global:`globalThis`,"process.env.NODE_ENV":JSON.stringify(p.env.NODE_ENV||`production`),...this.options.define}},plugins:this.createBuildPlugins(s,i,o,e,r)});if(!c.output||c.output.length===0)throw Error(`No output generated from Rolldown`);let l=c.output.find(e=>e.type===`chunk`&&e.isEntry);if(!l||l.type!==`chunk`)throw Error(`No entry chunk found in Rolldown output`);let u=l.code;return u=`// Built: ${new Date().toISOString()}\n${u}`,u}async buildServerComponents(){let e=f.join(this.options.outDir,this.options.rscDir);await d.promises.mkdir(e,{recursive:!0});let t={react:`npm:react@19`,"react-dom":`npm:react-dom@19`,"react/jsx-runtime":`npm:react@19/jsx-runtime`,"react/jsx-dev-runtime":`npm:react@19/jsx-dev-runtime`},n=this.options.alias||{};for(let[e,r]of Object.entries(n)){let n=f.isAbsolute(r)?r:f.resolve(this.projectRoot,r),i=f.join(this.projectRoot,`src`),a=f.relative(i,n);if(a.startsWith(`..`))continue;let o=f.join(this.options.outDir,this.options.rscDir,a),s=f.resolve(this.projectRoot,o);t[e]||(t[`${e}/`]=`${m(s).href}/`)}let r={components:{},importMap:{imports:t},version:`1.0.0`,buildTime:new Date().toISOString()};for(let[e,t]of this.serverComponents){if(this.isPageComponent(e))continue;let n=f.relative(this.projectRoot,e),i=this.getComponentId(n),a=f.join(this.options.rscDir,`${i}.js`),o=f.join(this.options.outDir,a),s=f.dirname(o);await d.promises.mkdir(s,{recursive:!0}),await this.buildSingleComponent(e,o);let c=m(f.resolve(this.projectRoot,o)).href;r.components[i]={id:i,filePath:e,relativePath:n,bundlePath:a,moduleSpecifier:c,dependencies:t.dependencies,hasNodeImports:t.hasNodeImports}}for(let[e,t]of this.serverComponents){if(!this.isPageComponent(e))continue;let n=f.relative(this.projectRoot,e),i=this.getComponentId(n),a=f.join(this.options.rscDir,`${i}.js`),o=f.join(this.options.outDir,a),s=f.dirname(o);await d.promises.mkdir(s,{recursive:!0}),await this.buildSingleComponent(e,o);let c=m(f.resolve(this.projectRoot,o)).href;r.components[i]={id:i,filePath:e,relativePath:n,bundlePath:a,moduleSpecifier:c,dependencies:t.dependencies,hasNodeImports:t.hasNodeImports}}for(let[e,t]of this.serverActions){let n=f.relative(this.projectRoot,e),i=this.getComponentId(n),a=f.join(this.options.rscDir,`${i}.js`),o=f.join(this.options.outDir,a),s=f.dirname(o);await d.promises.mkdir(s,{recursive:!0}),await this.buildSingleComponent(e,o);let c=m(f.resolve(this.projectRoot,o)).href;r.components[i]={id:i,filePath:e,relativePath:n,bundlePath:a,moduleSpecifier:c,dependencies:t.dependencies,hasNodeImports:t.hasNodeImports}}let i=f.join(this.options.outDir,this.options.manifestPath);await d.promises.writeFile(i,JSON.stringify(r,null,2),`utf-8`);let a={};this.options.csp&&(a.csp=this.options.csp),this.options.cacheControl&&(a.cacheControl=this.options.cacheControl);let o=f.join(this.options.outDir,this.options.serverConfigPath);if(Object.keys(a).length===0)try{await d.promises.unlink(o)}catch(e){e.code!==`ENOENT`&&console.warn(`Failed to remove server config file:`,e)}else await d.promises.writeFile(o,JSON.stringify(a,null,2),`utf-8`);return r}async buildSingleComponent(e,t,n=!1){let r=await d.promises.readFile(e,`utf-8`),i=this.transformClientImports(r,e),a=this.isPageComponent(e),o=a?this.transformComponentImportsToGlobal(i):i,s=f.extname(e),c;c=s===`.tsx`?`tsx`:s===`.ts`?`ts`:s===`.jsx`?`jsx`:`js`;let l=`\0virtual:${e}`,u=await h({input:l,platform:`node`,write:!1,external:[Y,`react`,`react-dom`,`react/jsx-runtime`,`react/jsx-dev-runtime`],output:{format:`esm`,minify:this.options.minify},moduleTypes:{[`.${c}`]:c},resolve:{mainFields:[`module`,`main`],conditionNames:[`import`,`module`,`default`],extensions:[`.ts`,`.tsx`,`.js`,`.jsx`]},transform:{jsx:`react`,define:{global:`globalThis`,"process.env.NODE_ENV":JSON.stringify(p.env.NODE_ENV||`production`),...this.options.define}},plugins:this.createBuildPlugins(l,o,c,e,a)});if(!u.output||u.output.length===0)throw Error(`No output generated from Rolldown`);let m=u.output.find(e=>e.type===`chunk`&&e.isEntry);if(!m||m.type!==`chunk`)throw Error(`No entry chunk found in Rolldown output`);let g=m.code;g=`// Built: ${new Date().toISOString()}\n${g}`,await d.promises.writeFile(t,g,`utf-8`);let _=await d.promises.open(t,`r+`);if(await _.sync(),await _.close(),n)return g}createSelfRegisteringModule(e,t){if(e.includes(`Self-registering Production Component`))return e;let i=e,s=null,l=[];if(i=i.replace(o,(e,t)=>(s=t,`function ${t}`)),i=i.replace(a,(e,t)=>(s=t,`async function ${t}`)),i=i.replace(c,(e,t)=>(s=t,`// Default export: ${t}`)),i=i.replace(n,(e,t)=>(s=t,`// Default export: ${t}`)),i=i.replace(ee,(e,n)=>{let r=n.split(`,`).map(e=>e.trim()),a=[];return r.forEach(e=>{if(e.includes(`as default`)){let t=e.replace(`as default`,``).trim();s=t,a.push(`${t} (default)`)}else if(e===`default`){let e=`${t}_default`;i.includes(`var ${e}`)&&(s=e),a.push(`default`)}else l.push(e),a.push(e)}),`// Exports: ${a.join(`, `)}`}),i=i.replace(r,(e,t)=>(l.push(t),e.replace(`export `,``))),i=i.replace(te,(e,t,n)=>(l.push(n),`${t} ${n}`)),!s){let e=`${t}_default`;i.includes(`var ${e}`)&&(s=e)}return`// Self-registering Production Component: ${t}
62
-
63
- if (!globalThis["${t}"]) {
64
- ${i}
65
-
66
- try {
67
- const moduleKey = "${t}";
68
- let mainExport = null;
69
- const exportedFunctions = {};
70
-
71
- if (!globalThis['~serverFunctions']) globalThis['~serverFunctions'] = {};
72
- if (!globalThis['~serverFunctions'].all) globalThis['~serverFunctions'].all = {};
73
-
74
- ${l.map(e=>`if (typeof ${e} !== 'undefined') {
75
- globalThis.${e} = ${e};
76
- globalThis['~serverFunctions'].all['${t}:${e}'] = ${e};
77
- exportedFunctions['${e}'] = ${e};
78
- }`).join(`
79
- `)}
80
-
81
- ${s?`if (typeof ${s} !== 'undefined') {
82
- mainExport = ${s};
83
- }`:``}
84
-
85
- if (mainExport === null && Object.keys(exportedFunctions).length > 0) {
86
- if (Object.keys(exportedFunctions).length === 1) {
87
- mainExport = exportedFunctions[Object.keys(exportedFunctions)[0]];
88
- } else {
89
- let componentFunction = null;
90
- let firstFunction = null;
91
-
92
- for (const [name, value] of Object.entries(exportedFunctions)) {
93
- if (typeof value === 'function') {
94
- if (!firstFunction) firstFunction = value;
95
- if (/^[A-Z]/.test(name)) {
96
- componentFunction = value;
97
- break;
98
- }
99
- }
100
- }
101
-
102
- mainExport = componentFunction || firstFunction;
103
- }
104
- }
105
-
106
- if (mainExport !== null) {
107
- if (!globalThis[moduleKey]) {
108
- globalThis[moduleKey] = mainExport;
109
- }
110
-
111
- if (!globalThis['~clientComponents']) globalThis['~clientComponents'] = {};
112
- globalThis['~clientComponents'][moduleKey] = {
113
- component: mainExport,
114
- id: moduleKey,
115
- registered: true
116
- };
117
-
118
- if (typeof globalThis.RscModuleManager !== 'undefined' && globalThis.RscModuleManager.register) {
119
- globalThis.RscModuleManager.register(moduleKey, mainExport, exportedFunctions);
120
- }
121
- }
122
- } catch (error) {
123
- console.error('[rari] Build: Error in self-registration for ${t}:', error);
124
- }
125
- }`}transformClientImports(e,t){let n=e,r,i=[],a=!1,o=[`rari/image`];for(U.lastIndex=0;r=U.exec(e),r!==null;){let[e,n,s,c]=r,l=!1,u=c;if(o.includes(c))l=!0;else{let e=this.resolveImportPath(c,t);this.isClientComponent(e)&&(l=!0,u=f.relative(this.projectRoot,e).replace(X,`/`))}if(l){a=!0;let t=``;n?t=`const ${n} = registerClientReference(
126
- null,
127
- ${JSON.stringify(u)},
128
- "default"
129
- );`:s&&(t=s.split(`,`).map(e=>e.trim()).map(e=>{let[t,n]=e.includes(` as `)?e.split(` as `).map(e=>e.trim()):[e,e];return`const ${n} = registerClientReference(
130
- null,
131
- ${JSON.stringify(u)},
132
- ${JSON.stringify(t)}
133
- );`}).join(`
134
- `)),i.push({original:e,replacement:t})}}a&&(n=`
135
- function registerClientReference(clientReference, id, exportName) {
136
- const key = id + '#' + exportName;
137
-
138
- const clientProxy = {};
139
-
140
- Object.defineProperty(clientProxy, '$$typeof', {
141
- value: Symbol.for('react.client.reference'),
142
- enumerable: false
143
- });
144
-
145
- Object.defineProperty(clientProxy, '$$id', {
146
- value: key,
147
- enumerable: false
148
- });
149
-
150
- Object.defineProperty(clientProxy, '$$async', {
151
- value: false,
152
- enumerable: false
153
- });
154
-
155
- try {
156
- if (typeof globalThis.registerClientComponent === 'function') {
157
- globalThis.registerClientComponent(key, id, clientProxy);
158
- }
159
- } catch (error) {
160
- console.error('[rari] Build: Failed to register client reference:', error);
161
- }
162
-
163
- return clientProxy;
164
- }
165
-
166
- `+n);for(let{original:e,replacement:t}of i)n=n.replace(e,t);return n}resolveImportPath(e,t){let n=e,r=this.options.alias||{};for(let[t,i]of Object.entries(r))if(e.startsWith(`${t}/`)||e===t){let r=e.slice(t.length);n=f.join(i,r);break}f.isAbsolute(n)||(n=f.resolve(f.dirname(t),n));let i=[`.tsx`,`.jsx`,`.ts`,`.js`];return I(n,i)||L(n,i)||`${n}.tsx`}getComponentId(e){return e.replace(G,`/`).replace(K,``).replace(s,`_`).replace(t,``)}async rebuildComponent(e){let t=this.getComponentId(f.relative(this.projectRoot,e)),n=await d.promises.readFile(e,`utf-8`),r=this.extractDependencies(n),i={filePath:e,originalCode:n,dependencies:r,hasNodeImports:this.hasNodeImports(n)};this.isServerAction(n)?this.serverActions.set(e,i):this.serverComponents.set(e,i);let a=f.join(this.options.rscDir,`${t}.js`),o=f.join(this.options.outDir,a),s=this.buildCache.get(e),c=(await d.promises.stat(e)).mtimeMs;if(s&&s.timestamp>=c&&JSON.stringify(s.dependencies)===JSON.stringify(r))return await d.promises.writeFile(o,s.code,`utf-8`),await this.updateManifestForComponent(t,e,a),{componentId:t,bundlePath:f.join(this.options.outDir,a),success:!0};let l=f.dirname(o);await d.promises.mkdir(l,{recursive:!0});let u=await this.buildSingleComponent(e,o,!0);return this.buildCache.set(e,{code:u,timestamp:Date.now(),dependencies:r}),await this.updateManifestForComponent(t,e,a),{componentId:t,bundlePath:f.join(this.options.outDir,a),success:!0}}manifestCache=null;async updateManifestForComponent(e,t,n){let r=f.join(this.options.outDir,this.options.manifestPath),i;if(this.manifestCache)i=this.manifestCache;else if(d.existsSync(r)){let e=await d.promises.readFile(r,`utf-8`);i=JSON.parse(e),this.manifestCache=i}else i={components:{},importMap:{imports:{react:`npm:react@19`,"react-dom":`npm:react-dom@19`,"react/jsx-runtime":`npm:react@19/jsx-runtime`,"react/jsx-dev-runtime":`npm:react@19/jsx-dev-runtime`}},version:`1.0.0`,buildTime:new Date().toISOString()},this.manifestCache=i;let a=this.serverComponents.get(t)||this.serverActions.get(t),o=f.join(this.options.outDir,n),s=m(f.resolve(this.projectRoot,o)).href;if(a)i.components[e]={id:e,filePath:t,relativePath:f.relative(this.projectRoot,t),bundlePath:n,moduleSpecifier:s,dependencies:a.dependencies,hasNodeImports:a.hasNodeImports};else{let r=await d.promises.readFile(t,`utf-8`);i.components[e]={id:e,filePath:t,relativePath:f.relative(this.projectRoot,t),bundlePath:n,moduleSpecifier:s,dependencies:this.extractDependencies(r),hasNodeImports:this.hasNodeImports(r)}}i.importMap||={imports:{react:`npm:react@19`,"react-dom":`npm:react-dom@19`,"react/jsx-runtime":`npm:react@19/jsx-runtime`,"react/jsx-dev-runtime":`npm:react@19/jsx-dev-runtime`}},i.buildTime=new Date().toISOString(),await d.promises.writeFile(r,JSON.stringify(i,null,2),`utf-8`),this.manifestCache=i}clearCache(){this.buildCache.clear(),this.manifestCache=null}invalidateBuildCacheFor(e){this.buildCache.delete(e)}async getTransformedComponentCode(e){return await this.buildComponentCodeOnly(e)}};function Q(e,t,n=!0){n&&t.buildImportGraph(e);let r=d.readdirSync(e,{withFileTypes:!0});for(let n of r){let r=f.join(e,n.name);if(n.isDirectory())Q(r,t,!1);else if(n.isFile()&&l.test(n.name)){if(ne.test(n.name)||n.name.endsWith(`.d.ts`))continue;try{let e=d.readFileSync(r,`utf-8`);if(E(e)){t.addServerComponent(r,e);continue}if(t.isOnlyImportedByClientComponents(r))continue;t.isServerComponent(r,e)&&t.addServerComponent(r,e)}catch(e){console.warn(`[server-build] Error checking ${r}:`,e instanceof Error?e.message:e)}}}}function $(e={}){let t=null,n,r=!1,i={};return{name:`rari-server-build`,configResolved(a){n=a.root,r=a.command===`serve`;let o={};if(a.resolve?.alias){let e=a.resolve.alias;Array.isArray(e)?e.forEach(e=>{typeof e.find==`string`&&typeof e.replacement==`string`&&(o[e.find]=e.replacement)}):typeof e==`object`&&Object.entries(e).forEach(([e,t])=>{typeof t==`string`&&(o[e]=t)})}i=o,t=new Z(n,{...e,alias:o})},buildStart(){if(!t)return;let e=p.env.NODE_ENV===`production`,r=[f.join(n,`dist`,`cache`,`og`),f.join(n,`dist`,`cache`,`images`)];e&&r.push(`/tmp/rari-og-cache`,`/tmp/rari-image-cache`);for(let e of r)try{d.existsSync(e)&&d.rmSync(e,{recursive:!0,force:!0})}catch(t){console.warn(`[rari] Failed to clear cache ${e}:`,t)}let i=f.join(n,`src`);d.existsSync(i)&&Q(i,t)},async closeBundle(){if(t){await t.buildServerComponents();try{let{generateRobotsFile:e}=await import(`./robots-generator-Byiwomr5.mjs`);await e({appDir:f.join(n,`src`,`app`),outDir:f.join(n,`dist`),extensions:[`.ts`,`.tsx`,`.js`,`.jsx`]})}catch(e){console.warn(`[rari] Failed to generate robots.txt:`,e)}try{let{generateSitemapFiles:e}=await import(`./sitemap-generator-DXQL4RtJ.mjs`);await e({appDir:f.join(n,`src`,`app`),outDir:f.join(n,`dist`),extensions:[`.ts`,`.tsx`,`.js`,`.jsx`],aliases:i})}catch(e){console.warn(`[rari] Failed to generate sitemap:`,e)}}},async handleHotUpdate({file:e}){if(!t||!r)return;let i=f.relative(n,e).replace(G,`/`);if(!(!i.startsWith(`src/`)||!l.test(i)))try{if(D(await d.promises.readFile(e,`utf-8`)))return;await t.buildServerComponents()}catch(e){console.error(`[rari] Build: Error rebuilding ${i}:`,e)}}}}export{F as a,I as i,R as n,D as o,L as r,E as s,$ as t};