@wren-js/core 0.1.3 → 0.1.5
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/cli.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import{C as e,S as t,_ as n,b as r,d as i,f as a,g as o,h as s,l as c,p as l,t as u,u as d,v as f,w as p,x as m,y as h}from"./constants-
|
|
2
|
-
`).length-1,_e=(e,t,n,r)=>{let i=
|
|
3
|
-
`.repeat(i):r}},ve=(e,t)=>{let n=e;for(let{end:e,start:r,text:i}of t.toSorted((e,t)=>t.start-e.start))n=n.slice(0,r)+i+n.slice(e);return n},ye=/\.[cm]?[jt]sx?$/,be=/^(?:[a-z][a-z\d+.-]*:|\/\/)/i,
|
|
4
|
-
`.repeat(
|
|
1
|
+
import{C as e,S as t,_ as n,b as r,d as i,f as a,g as o,h as s,l as c,p as l,t as u,u as d,v as f,w as p,x as m,y as h}from"./constants-D5tTpiZL.mjs";import{c as ee,l as g,n as te,s as _}from"./constants-B7Wo9Ox0.mjs";import{CONFIG_VALID_EXTENSIONS as ne,DEFAULTS as v}from"./config.mjs";import{t as y}from"./utils-0wezGh38.mjs";import{t as b}from"./trie-lookup-BLa5NWBJ.mjs";import{existsSync as re}from"node:fs";import{basename as ie,dirname as x,extname as ae,isAbsolute as S,join as C,relative as w,resolve as T}from"node:path";import E,{cwd as oe}from"node:process";import{parseArgs as se}from"node:util";import{Visitor as ce,createBuilder as le,createServer as ue,defineConfig as de,isCSSRequest as fe,loadConfigFromFile as pe,mergeConfig as D,normalizePath as O,parseSync as k}from"vite";import{mkdir as me,readFile as A,readdir as j,rm as M,writeFile as N}from"node:fs/promises";import{pathToFileURL as he}from"node:url";const ge=()=>oe(),P=e=>e.split(`
|
|
2
|
+
`).length-1,_e=(e,t,n,r)=>{let i=P(e.slice(t,n))-P(r);return{end:n,start:t,text:i>0?r+`
|
|
3
|
+
`.repeat(i):r}},ve=(e,t)=>{let n=e;for(let{end:e,start:r,text:i}of t.toSorted((e,t)=>t.start-e.start))n=n.slice(0,r)+i+n.slice(e);return n},ye=/\.[cm]?[jt]sx?$/,be=/^(?:[a-z][a-z\d+.-]*:|\/\/)/i,F=e=>{if(e.type===`Literal`&&typeof e.value==`string`)return e.value;if(e.type===`TemplateLiteral`&&e.expressions.length===0)return e.quasis[0]?.value.cooked??void 0},I=({value:e})=>{if(e?.type===`Literal`)return e.value;if(e?.type===`JSXExpressionContainer`)return F(e.expression)},xe=(e,t)=>{let n={kept:[]};for(let r of t.attributes){let t=e.slice(r.start,r.end);if(r.type!==`JSXAttribute`||r.name.type!==`JSXIdentifier`){n.kept.push(t);continue}let{name:i}=r.name;i===`src`?n.src=r:i===`dangerouslySetInnerHTML`?n.html=r:(i===`type`&&(n.type=I(r)),n.kept.push(t))}return n},Se=({key:e})=>e.type===`Identifier`?e.name:e.type===`Literal`?e.value:null,Ce=({value:e})=>{let t=e?.type===`JSXExpressionContainer`?e.expression:void 0;if(t?.type===`ObjectExpression`)for(let e of t.properties){if(e.type!==`Property`||e.computed||Se(e)!==`__html`)continue;let t=F(e.value);return t===void 0?void 0:[t,e.value.start+1]}},we=(e,t)=>{if(t)return Ce(t);let n=e.children.filter(e=>e.type!==`JSXText`||e.value.trim()!==``);if(n.length===0)return[``,e.start];if(n.length!==1)return;let[r]=n;if(r.type===`JSXText`)return[r.value,r.start];if(r.type!==`JSXExpressionContainer`)return;let i=F(r.expression);return i===void 0?void 0:[i,r.expression.start+1]},Te=({name:e})=>e.type===`JSXIdentifier`&&e.name===`script`,L=(e,t)=>{let n=[],r=[],{errors:i,program:a}=k(t,e);if(i.length>0)return{importOffset:0,scripts:n,warnings:r};let o=a.body.find(e=>e.type!==`ExpressionStatement`||typeof e.directive!=`string`)?.start??e.length,s=0,c=/* @__PURE__ */ new Set,l=e=>{for(let t of e.children)c.add(t.start)},u=t=>{let{html:i,kept:a,src:o,type:l}=xe(e,t.openingElement),u=o&&I(o),d=u!==void 0&&!be.test(u);if(l!==`module`){d&&ye.test(u)&&r.push(`<script src="${u}"> is not bundled; add type="module" to make it a page script.`);return}let f={attributes:a,end:t.end,replacement:c.has(t.start)?``:`<></>`,start:t.start};if(o){d&&n.push({...f,kind:`src`,src:u});return}let p=we(t,i);if(!p){r.push(`<script type="module"> content must be a static string to be bundled.`);return}let[m,h]=p;m.trim()!==``&&n.push({...f,code:m,codeStart:h,index:s++,kind:`inline`})};return new ce({JSXElement(e){l(e),Te(e.openingElement)&&u(e)},JSXFragment:l}).visit(a),{importOffset:o,scripts:n,warnings:r}},R=`virtual:${e}-page-scripts`,z=`__wrenPageScripts`,B=`${R}:route:`,V=`\0${B}`,H=`\0${_}`,U=/\?wren-script=(\d+)\.ts$/,W=`__wren-page-scripts.mjs`,G=`\0${ee}`,Ee=/\.[cm]?[jt]sx?$/,De=(e,t)=>{let n=O(w(e,t));return n.startsWith(`../`)||S(n)?`@fs/${O(t).replace(/^\//,``)}`:n},K=e=>ie(e,ae(e)),Oe=async(e,t,n)=>{let r=t.attributes.filter(e=>!/^type\b/.test(e));if(r.length>0&&e.warn(`Page script attributes are dropped when hoisted: ${r.join(` `)}`),t.kind===`inline`)return{id:`${n}?wren-script=${t.index}.ts`,name:`${K(n)}-${t.index}`};let i=await e.resolve(t.src,n);if(!i||i.external||i.id.includes(`/node_modules/`))e.warn(`Page script "${t.src}" must resolve to a project file; left as is.`);else return{id:i.id,name:K(i.id)}},ke=async(e,t,n)=>{let r=await A(t,`utf8`),i=L(r,t).scripts.find(e=>e.kind===`inline`&&e.index===n);return i?.kind===`inline`?{code:`
|
|
4
|
+
`.repeat(P(r.slice(0,i.codeStart)))+i.code,map:null}:e.error(`Inline page script #${n} not found in ${t}.`)},Ae=t=>{let n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ new Set,i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Map,o=[],s=/* @__PURE__ */ new Map,c,l=[],u=(e,t)=>{let r=De(e,t.id),i=n.get(r)??{...t,index:n.size,key:r};return n.set(r,i),i},d=e=>{let t=o.indexOf(e);return t===-1?o.push(e)-1:t},f=(e,t)=>{let n=/* @__PURE__ */ new Set,r=/* @__PURE__ */ new Set,o=e=>{if(!r.has(e)){r.add(e);for(let t of i.get(e)??[])n.add(t);for(let t of a.get(e)?.values()??[])for(let e of t)n.add(e);for(let n of t(e))o(n)}};return o(e),[...n]},p=async(e,t,n,r)=>{let{scripts:a,warnings:o}=L(t,n),s=a.map(({end:e,replacement:n,start:r})=>_e(t,r,e,n));if(!r)return s;for(let t of o)e.warn(t);let c=await Promise.all(a.map(t=>Oe(e,t,n))),{root:l}=e.environment.config;return i.set(n,c.flatMap(e=>e?[u(l,e)]:[])),s.filter((e,t)=>c[t])},m=(e,t)=>{let n=t?`() => ${z}.routes[${d(e)}]`:`async () => (await import(${JSON.stringify(B+encodeURIComponent(e))})).default`;return`\n${t?`import ${z} from ${JSON.stringify(R)};`:``}export const ${te} = ${n};\n`},h=(e,t)=>{let n=f(t,t=>l.flatMap(({moduleGraph:n})=>{let r=n.getModuleById(t);return r?.file&&S(r.file)&&e.addWatchFile(r.file),Array.from(r?.importedModules??[],e=>e.id).filter(e=>e!==null&&!fe(e))})),{base:r}=e.environment.config;return`export default ${JSON.stringify(n.map(e=>r+e.key))};`};return{buildApp:{async handler(t){let i=[...n.values()],a=i.filter(e=>!e.url).map(e=>e.key);if(a.length>0)throw Error(`[${e}] Page scripts were not bundled by the client environment (server environments must build first): ${a.join(`, `)}`);let c={routes:o.map(e=>f(e,e=>s.get(e)??[]).map(e=>e.url)),scripts:i.map(e=>e.url)},l=`export default ${JSON.stringify(c)};\n`;await Promise.all([...r].map(async e=>{let{build:n,root:r}=t.environments[e].config;await N(T(r,n.outDir,W),l)}))},order:`post`},buildEnd(){if(this.environment.mode===`build`)for(let e of this.getModuleIds()){let t=this.getModuleInfo(e);if(!t)continue;let n=[...t.importedIds,...t.dynamicallyImportedIds];s.set(e,[...s.get(e)??[],...n])}},buildStart(){let{mode:e,name:t}=this.environment;if(e===`build`&&t===`client`)for(let e of n.values())e.reference=this.emitFile({id:e.id,name:`scripts/${e.name}`,preserveSignature:`exports-only`,type:`chunk`})},configResolved(e){c=`${O(T(e.root,t))}/`},configureServer(e){l=Object.values(e.environments)},enforce:`pre`,generateBundle(){if(this.environment.name!==`client`)return;let{base:e}=this.environment.config;for(let t of n.values())t.reference&&(t.url=e+this.getFileName(t.reference))},load:{filter:{id:[U,RegExp(`^${G}`),RegExp(`^${V}`),RegExp(`^${H}$`)]},async handler(e){let{config:t,mode:n}=this.environment;if(e===H)return`export {};`;if(e.startsWith(G)){let r=e.slice(G.length),{index:i,key:a}=u(t.root,{id:r,name:K(r)});return n===`build`?`import ${z} from ${JSON.stringify(R)};export default ${z}.scripts[${i}];`:`export default ${JSON.stringify(t.base+a)};`}if(e.startsWith(V))return h(this,decodeURIComponent(e.slice(V.length)));let r=U.exec(e);return r?ke(this,e.slice(0,r.index),Number(r[1])):null}},name:`${e}-page-scripts`,renderChunk(e,t){if(!e.includes(R))return null;this.environment.config.build.write&&r.add(this.environment.name);let n=O(w(x(t.fileName),W)),i=n.startsWith(`.`)?n:`./${n}`;return{code:e.replaceAll(R,i),map:null}},async resolveId(e,t){if(e.startsWith(`virtual:wrenjs-hoist:`)){if(t&&this.environment.config.consumer===`server`){let n=await this.resolve(e.slice(_.length),t);if(!n?.id.startsWith(G))return this.error(`"${e}" must resolve to a Wren page script (${t}).`);let r=n.id.slice(G.length),i=u(this.environment.config.root,{id:r,name:K(r)}),o=a.get(t)??/* @__PURE__ */ new Map,s=o.get(this.environment.name)??/* @__PURE__ */ new Set;a.set(t,o.set(this.environment.name,s.add(i)))}return H}return e.startsWith(`virtual:wrenjs-script-url:`)||e.startsWith(B)?`\0${e}`:e===R?{external:!0,id:e}:null},sharedDuringBuild:!0,transform:{filter:{id:Ee},async handler(e,t){let{config:n,mode:r}=this.environment,o=n.consumer===`server`,s=o&&t.startsWith(c)&&g.test(t),l=e.includes(`<script`)?await p(this,e,t,o):[];if(l.length===0&&i.delete(t),a.get(t)?.delete(this.environment.name),l.length===0&&!s)return null;let u=s?m(t,r===`build`):``;return{code:ve(e,l)+u,map:null}}}}},je=/<link\b(?=[^>]*\srel="stylesheet")(?![^>]*\s(?:disabled|media)\b)[^>]*\shref="([^"]+)"[^>]*>/gi,Me=/\sdata-precedence="[^"]*"/i,Ne=/<\/(style)/gi,Pe=(e,t,n,r)=>{for(let i of Object.values(e)){if(i.type!==`asset`||!i.fileName.endsWith(`.css`))continue;let e=Buffer.from(i.source);e.byteLength<n&&r.set(t+i.fileName,e.toString().replace(Ne,`<\\/$1`))}},Fe=(e,t)=>{let n=e.indexOf(`</head>`);return n===-1&&(n=e.length),e.slice(0,n).replace(je,(e,n)=>{let r=t.get(n);if(r===void 0)return e;let i=Me.exec(e)?.[0]??``,a=`<style data-href="${n}"${i}>${r}</style>`;return i?`${a}<link disabled type="text/x-inlined"${e.slice(5)}`:a})+e.slice(n)},Ie=async(e,t,n=`http://localhost`,r=!1,i=/* @__PURE__ */ new Map)=>{let a=new URL(n);if(!/^https?:$/.test(a.protocol)||a.href!==`${a.origin}/`)throw Error(`build.prerender.origin must be an HTTP(S) origin.`);let o=/* @__PURE__ */ new Set,s=/* @__PURE__ */ new Set,c=async({pathname:e,response:n})=>{let r=y(e);if(n.status!==200)throw Error(`Cannot prerender ${r}: HTTP ${n.status}.`);let a=n.headers.get(`content-type`)?.startsWith(`text/html`),c=a?C(r.slice(1),`index.html`):r.slice(1);if(o.has(r)||s.has(c))throw Error(`Conflicting prerender artifact: ${r}.`);o.add(r),s.add(c);let l=C(t,c);await me(x(l),{recursive:!0}),await N(l,a&&i.size>0?Fe(await n.text(),i):new Uint8Array(await n.arrayBuffer()))},l=0;return await Promise.all(e.map(async e=>{let t=await e.getPaths(r);await Promise.all(t.map(async t=>{let n=y(t);if(o.has(n))throw Error(`Multiple prerender providers claim ${n}.`);let r=await e.render(new Request(new URL(n,a)));if(await Promise.all(r.map(c)),!o.has(n))throw Error(`Prerender renderer did not return ${n}.`);l++}))})),l},Le=(t,n)=>{let r=n.integrations?.flatMap(({prerender:e})=>e?[{...e,output:``,reference:``}]:[])??[],i=n.build?.inlineCSS,a=i===!0?1/0:i||0,o=/* @__PURE__ */ new Map;return{apply:`build`,buildApp:{async handler(e){if(!r.length)return;let t=await Promise.all(r.map(async({environment:e,output:t})=>{if(!t)throw Error(`No prerender entry was built for ${e}.`);return import(
|
|
5
5
|
/* @vite-ignore */
|
|
6
|
-
he(t).href)})),i=e.environments.client;if(!i)throw Error(`Prerendering requires a client output environment.`);let a=await
|
|
7
|
-
`)}`);return n.staticExports.reduce((e,t)=>{for(let n of t.entries){if(n.isType)continue;let t=n.exportName.kind===`Default`?`default`:n.exportName.name;t!==null&&e.push(t)}return e},[])},
|
|
6
|
+
he(t).href)})),i=e.environments.client;if(!i)throw Error(`Prerendering requires a client output environment.`);let a=await Ie(t,T(e.config.root,i.config.build.outDir),n.build?.prerender?.origin,n.build?.output===`static`,o);e.config.logger.info(`Prerendered ${a} pages.`),await Promise.all(r.flatMap(({output:e})=>[M(e,{force:!0}),M(`${e}.map`,{force:!0})]))},order:`post`},buildStart(){for(let e of r)e.environment===this.environment.name&&(e.reference=this.emitFile({id:e.entry,preserveSignature:`strict`,type:`chunk`}))},generateBundle(){if(this.environment.config.build.write)for(let e of r)e.environment===this.environment.name&&(e.output=T(this.environment.config.root,this.environment.config.build.outDir,this.getFileName(e.reference)))},name:`${e}-prerender`,sharedDuringBuild:!0,writeBundle(e,t){a&&this.environment.name===`client`&&Pe(t,this.environment.config.base,a,o)}}},Re={0:void 0,1:n,10:`API`,11:n,100:void 0,101:s,110:`API`,200:void 0,201:o,210:void 0,300:void 0,301:f,310:void 0,1e3:void 0,1001:h,1010:`API`},q=(e,t)=>{let n=t.includes(`default`),r=u.some(e=>t.includes(e)),o=e.replace(/\.[^/.]+$/,``),s=Number(n)+10*Number(r)+100*Number(o===c)+200*Number(o===d)+300*Number(o===i)+1e3*Number(o===a);return Re[s]||void 0};let J=0;const Y=e=>e.isFile()&&g.test(e.name),X=async e=>{let{errors:t,module:n}=k(e,await A(e,`utf8`));if(t.length>0)throw SyntaxError(`Cannot parse ${e}: ${t.map(e=>e.message).join(`
|
|
7
|
+
`)}`);return n.staticExports.reduce((e,t)=>{for(let n of t.entries){if(n.isType)continue;let t=n.exportName.kind===`Default`?`default`:n.exportName.name;t!==null&&e.push(t)}return e},[])},ze=[l,c,i],Z={layouts:[],proxies:[]},Be=async e=>{let t=await j(e,{withFileTypes:!0}),n=[],r=[];return await Promise.all(t.filter(e=>Y(e)&&ze.some(t=>e.name.startsWith(t)||!e.name.startsWith(`_`))).map(async t=>{let i=T(e,t.name),a=q(t.name,await X(i));switch(a){case s:n.push({file:i,id:J++,kind:a});break;case f:r.push({file:i,id:J++,kind:a});break;case h:n.push({file:i,id:J++,kind:a})}})),{layouts:n.toSorted((e,t)=>Number(e.kind===h)-Number(t.kind===h)),proxies:r}},Ve=e=>{let t=/* @__PURE__ */ new Map,n=T(e),r=n.endsWith(`/`)?n:`${n}/`,i=e=>{if(e!==n&&!e.startsWith(r))return Promise.resolve(Z);let a=t.get(e);if(a)return a;let o=Promise.all([Be(e),e===n?Promise.resolve(Z):i(T(e,`..`))]).then(([e,t])=>({layouts:[...e.layouts,...t.layouts],proxies:[...e.proxies,...t.proxies]}));return t.set(e,o),o};return e=>i(T(e,`..`))},He=/\/\(([^/]+)\)(?=\/|$)/g,Ue=(e,t)=>{let n=[],r=[],i=t.slice(e.length).replace(/\.[^/.]+$/,``).replace(/\/(?:index|__not-found)$/,``).replaceAll(/\[(\.\.\.)?([^[\]]+)\]/g,(e,t,n)=>(r.push(n),t?`:${n}*`:`:${n}`)).replace(He,(e,t)=>(n.push(t),``))||`/`;return{groups:n.length>0?n:void 0,params:r,pattern:i}},We=/* @__PURE__ */ new Set([`API`,o,n]),Ge=async(e,t,r)=>{let i=O(`${r.parentPath}/${r.name}`),a=await X(i),o=q(r.name,a);if(!o||!We.has(o))return;let s=await e(i),c=o===n,{groups:l=[],params:u,pattern:d}=Ue(t,i);return{file:i,groups:l,id:J++,kind:o,layouts:c?s.layouts:void 0,params:u,pattern:d,proxies:c?s.proxies:void 0}},Ke=async(e,n)=>{let r=T(n,e.router??`src/pages`),i=await j(r,{recursive:!0,withFileTypes:!0}),a=Ve(r),o=await Promise.all(i.filter(Y).map(async e=>Ge(a,r,e))),s=[],c=[];for(let e of o)e&&(m.has(e.kind)&&s.push(e),t.has(e.kind)&&c.push(e));return{notFounds:s,routes:c}},Q=async e=>{if(!e)return{dynamicRoutes:void 0,staticRoutes:void 0};let t={},n={};for(let r of e){let{params:e,pattern:i,...a}=r;e?.length?n[i]=r:t[i]=a}return{dynamicRoutes:n,staticRoutes:t}},qe=async e=>{let[{dynamicRoutes:t,staticRoutes:n},{dynamicRoutes:r,staticRoutes:i}]=await Promise.all([Q(e.routes),Q(e.notFounds)]);return{dynamicNotFounds:r,dynamicRoutes:t,staticNotFounds:i,staticRoutes:n}},Je=(e,t,n)=>{let r=[],i=e,a=n;for(;a<t.length;a++){let e=i.indexOf(`:${t[a]}`);if(e<0)break;r.push(i.slice(0,e)),i=i.slice(e+t[a].length+1)}return r.push(i),{i:a,lits:r}},Ye=(e,t,n)=>{let r=n.params,i=t.split(`/`).filter(Boolean),a=i.at(-1)===`:${r.at(-1)}*`?`w`:`e`;a===`w`&&i.pop();let o=e,s=0;for(let e of i)if(!e.includes(`:`))o.s[e]??=b(),o=o.s[e];else if(e===`:${r[s]}`)o.p??=b(),o=o.p,s++;else if(e.endsWith(`*`))throw Error(`Catch-all must be last in "${t}".`);else{let n=Je(e,r,s);if(n.i===s)throw Error(`Params do not match pattern "${t}".`);let i=b();o.m??=[],o.m.push({lits:n.lits,node:i}),o=i,s=n.i}if(s!==r.length-+(a===`w`))throw Error(`Params do not match pattern "${t}".`);let c=o[a];if(c)throw Error(`"${n.file}" conflicts with "${c.file}".`);o[a]=n},Xe=(e={})=>{let t=b();for(let[n,r]of Object.entries(e))Ye(t,n,r);return t},Ze=async(e,t)=>{let n=await Ke(e,t),{dynamicNotFounds:r,dynamicRoutes:i,staticNotFounds:a,staticRoutes:o}=await qe(n);return{dynamicNotFounds:Xe(r),dynamicRoutes:Xe(i),staticNotFounds:a,staticRoutes:o}},Qe=(e,t)=>{let n=/* @__PURE__ */ new Map,i=e=>{let t=O(e.file),r=n.get(t);return r||(r=`load${n.size}`,n.set(t,r)),r},a=JSON.stringify(e,(e,t)=>{if(!t||typeof t.file!=`string`)return t;let n=i(t),a={__wrenCode:n};if(r.includes(t.kind))return a;let o=(t.layouts??[]).map(i).join(`, `),s=(t.proxies??[]).map(i).join(`, `);return{kind:t.kind,layouts:t.layouts,module:a,params:t.params,pattern:t.pattern,proxies:t.proxies,stack:{__wrenCode:`createStack(${n}, [${o}], [${s}])`}}}).replace(/\{"__wrenCode":"([^"]+)"\}/g,`$1`),o=[...n].map(([e,n])=>{let r=`() => import(${JSON.stringify(e)})`;return`const ${n} = ${t?`memoize(${r})`:r};`});return`
|
|
8
8
|
${t?`function memoize(load) {
|
|
9
9
|
let pending;
|
|
10
10
|
return () => {
|
|
@@ -47,4 +47,4 @@ he(t).href)})),i=e.environments.client;if(!i)throw Error(`Prerendering requires
|
|
|
47
47
|
const manifest = deepFreeze(${a});
|
|
48
48
|
export const { dynamicNotFounds, dynamicRoutes, staticNotFounds, staticRoutes } = manifest;
|
|
49
49
|
export default manifest;
|
|
50
|
-
`}
|
|
50
|
+
`},$e=`virtual:${e}-routes`,et=[`\0${$e}`],tt=(e,t,n)=>{let r=!1,i=O(T(e.config.root,t.router));if(O(n).startsWith(`${i}/`)){for(let t of Object.values(e.environments))for(let e of et){let n=t.moduleGraph.getModuleById(e);n&&(r=!0,t.moduleGraph.invalidateModule(n))}r&&e.ws.send({type:`full-reload`})}},nt=async(e,t,n=!0)=>Qe(await Ze(e,t),n),rt=(t,n)=>{let r=typeof n.router==`string`,i=t.command===`build`;return{async buildApp(e){if(!n.integrations||n.integrations?.length===0){let t=await nt(n,e.config.root,i);console.debug(`Generated route manifest:`),console.debug(t)}},async configureServer(e){let t=r?t=>tt(e,n,t):e=>void 0;e.watcher.on(`add`,t),e.watcher.on(`change`,t),e.watcher.on(`unlink`,t)},async load(e){return et.includes(e)?nt(n,this.environment.config.root,i):null},name:`${e}-route-manifest`,resolveId(e){return e===$e?`\0${e}`:null}}},it=async(t,n)=>{let r=de({appType:`custom`,build:{minify:!0,outDir:`dist`,rolldownOptions:{experimental:{nativeMagicString:!0},optimization:{inlineConst:{mode:`smart`,pass:2}}}},builder:{async buildApp(e){let t=Object.values(e.environments).toSorted((e,t)=>Number(e.config.consumer===`client`)-Number(t.config.consumer===`client`));for(let n of t){if(n.isBuilt)continue;let{build:t,input:r,isBundled:i}=n.config,a=t.rolldownOptions.input??(t.lib?t.lib.entry:void 0)??(typeof t.ssr==`string`?t.ssr:r);!(typeof a==`string`||Object.keys(a??{}).length>0)||!i?delete e.environments[n.name]:await e.build(n)}},sharedConfigBuild:!0,sharedPlugins:!0},plugins:[{api:{wrenConfig:n},name:`${e}-config`},rt(t,n),Ae(n.router),Le(t,n)],resolve:{noExternal:[/^@wren-js\//],tsconfigPaths:!0}}),i=await Promise.all([n.adapter,...n.integrations??[]].map(async e=>e?.viteConfig(n,t))),a=r;for(let e of i)e&&(a=D(a,e));return a},$=async t=>{let n=ge(),r=ne.map(e=>O(T(n,`wren.config.${e}`))),i=r.find(e=>re(e)),a=i?await pe(t,i):null,o=/* @__PURE__ */ new Set([...r,...(a?.dependencies??[]).map(e=>O(T(e)))]),s=a?D(v,a.config):v,c=D(await it(t,s),s.vite??{});return{...c,configFile:!1,mode:t.mode,plugins:[...c.plugins??[],{apply:`serve`,configResolved(e){e.configFileDependencies.push(...o)},configureServer(e){let n=e.restart.bind(e),r;e.restart=i=>(r??=(async()=>{let r=await $(t),{inlineConfig:a}=e.config;for(let e of Object.keys(a))Reflect.deleteProperty(a,e);Object.assign(a,r),await n(i)})().finally(()=>{r=void 0}),r)},name:`${e}-config-reload`}]}},at=async t=>{t.mode=t.command===`build`?`production`:E.env.NODE_ENV??`development`;let n=await $(t);if(t.command===`serve`){let t=await ue(n);return await t.listen(),console.info(`${e} v${p}`),t.printUrls(),t.bindCLIShortcuts({print:!0}),t}return t.command===`build`?(await le(n)).buildApp():Promise.resolve()},ot=se({allowPositionals:!0,args:E.argv,options:{help:{short:`h`,type:`boolean`},version:{short:`v`,type:`boolean`}}}).positionals[2];at({command:ot===`build`?`build`:`serve`,mode:E.env.NODE_ENV??`production`}).catch(e=>{console.error(e),E.exit(1)});export{};
|
package/dist/config.d.mts
CHANGED
|
@@ -23,7 +23,7 @@ interface WrenConfig {
|
|
|
23
23
|
*/
|
|
24
24
|
build?: {
|
|
25
25
|
/**
|
|
26
|
-
* If client CSS assets should be inlined into the per-route HTML for prerendered
|
|
26
|
+
* If client CSS assets should be inlined into the per-route HTML for prerendered output.
|
|
27
27
|
*
|
|
28
28
|
* | Value | Behavior |
|
|
29
29
|
* | :---: | :--- |
|
|
@@ -34,18 +34,18 @@ interface WrenConfig {
|
|
|
34
34
|
* @default false
|
|
35
35
|
*/
|
|
36
36
|
inlineCSS?: boolean | number;
|
|
37
|
-
/**
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
inlineJS?: boolean | number;
|
|
37
|
+
// /**
|
|
38
|
+
// * If client JS assets should be inlined into the per-route HTML for prerendered output.
|
|
39
|
+
// *
|
|
40
|
+
// * | Value | Behavior |
|
|
41
|
+
// * | :---: | :--- |
|
|
42
|
+
// * | `true` | Inline all JS assets. |
|
|
43
|
+
// * | `false` | Do not inline any JS assets. |
|
|
44
|
+
// * | `number` | Inline assets smaller than the specified size in bytes. |
|
|
45
|
+
// *
|
|
46
|
+
// * @default false
|
|
47
|
+
// */
|
|
48
|
+
// inlineJS?: boolean | number;
|
|
49
49
|
/**
|
|
50
50
|
* Defines the output format for the build.
|
|
51
51
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./constants-B7Wo9Ox0.mjs";var e=`0.1.
|
|
1
|
+
import"./constants-B7Wo9Ox0.mjs";var e=`0.1.5`;const t=`wrenjs`,n=e,r=`ROOT`,i=`PAGE`,a=`API`,o=`NOT_FOUND`,s=`LAYOUT`,c=`PROXY`,l=[r,s,c],u=`___root`,d=`___root`,f=`__layout`,p=`__not-found`,m=`__proxy`,h=`GET`,g=`DELETE`,_=`HEAD`,v=`OPTIONS`,y=`PATCH`,b=`POST`,x=`PUT`,S=[`GET`,g,_,v,y,b,`PUT`],C=/* @__PURE__ */ new Set([`API`,i]),w=/* @__PURE__ */ new Set([o]);export{t as C,C as S,i as _,v as a,l as b,x as c,m as d,u as f,o as g,s as h,_ as i,f as l,a as m,g as n,y as o,d as p,h as r,b as s,S as t,p as u,c as v,n as w,w as x,r as y};
|
package/dist/constants.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S,y as C}from"./constants-
|
|
1
|
+
import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S,y as C}from"./constants-D5tTpiZL.mjs";import{l as w}from"./constants-B7Wo9Ox0.mjs";export{v as ENTRY_API_EXPORTS,p as ENTRY_FILEROUTE_API_EXPORT_DELETE,g as ENTRY_FILEROUTE_API_EXPORT_GET,u as ENTRY_FILEROUTE_API_EXPORT_HEAD,r as ENTRY_FILEROUTE_API_EXPORT_OPTIONS,m as ENTRY_FILEROUTE_API_EXPORT_PATCH,_ as ENTRY_FILEROUTE_API_EXPORT_POST,a as ENTRY_FILEROUTE_API_EXPORT_PUT,d as ENTRY_FILEROUTE_LAYOUT,y as ENTRY_FILEROUTE_NOT_FOUND,o as ENTRY_FILEROUTE_PROXY,s as ENTRY_FILEROUTE_ROOT,h as ENTRY_FILEROUTE_ROOT_LAYOUT,f as ENTRY_KIND_API,l as ENTRY_KIND_LAYOUT,c as ENTRY_KIND_NOT_FOUND,n as ENTRY_KIND_PAGE,b as ENTRY_KIND_PROXY,C as ENTRY_KIND_ROOT,i as ENTRY_WRAPPER_TYPES,S as FALLBACK_ENTRIES,t as ROUTE_ENTRIES,w as ROUTE_MODULE_RE,e as WREN_NAME,x as WREN_VERSION};
|
package/dist/runtime/router.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"../utils-0wezGh38.mjs";import{n as t}from"../trie-lookup-BLa5NWBJ.mjs";import{dynamicNotFounds as n,dynamicRoutes as r,staticNotFounds as i,staticRoutes as a}from"virtual:wrenjs-routes";function o(o){let s=e(o);if(!s)return;let c=[],l=a?.[s]??t(r,s,c)??i?.[s]??t(n,s,c);if(!l)return;let u=
|
|
1
|
+
import{t as e}from"../utils-0wezGh38.mjs";import{n as t}from"../trie-lookup-BLa5NWBJ.mjs";import{dynamicNotFounds as n,dynamicRoutes as r,staticNotFounds as i,staticRoutes as a}from"virtual:wrenjs-routes";function o(o){let s=e(o);if(!s)return;let c=[],l=a?.[s]??t(r,s,c)??i?.[s]??t(n,s,c);if(!l)return;let u=Object.fromEntries(l.params?.map((e,t)=>[e,c[t]])??[]),d=({layouts:e,module:t,proxies:n})=>({kind:l.kind,layouts:e,module:t,params:u,proxies:n}),f=l.stack();return f instanceof Promise?f.then(d):d(f)}export{o as matchRouteToStack};
|