@bobtail.software/b-ssr 1.0.35 → 1.0.36

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.
@@ -1 +1 @@
1
- "use strict";var g=Object.create;var S=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty;var G=(e,r)=>{for(var d in r)S(e,d,{get:r[d],enumerable:!0})},T=(e,r,d,f)=>{if(r&&typeof r=="object"||typeof r=="function")for(let m of O(r))!D.call(e,m)&&m!==d&&S(e,m,{get:()=>r[m],enumerable:!(f=x(r,m))||f.enumerable});return e};var R=(e,r,d)=>(d=e!=null?g(I(e)):{},T(r||!e||!e.__esModule?S(d,"default",{value:e,enumerable:!0}):d,e)),k=e=>T(S({},"__esModule",{value:!0}),e);var C={};G(C,{default:()=>A});module.exports=k(C);var H=require("@fastify/multipart"),v=R(require("fastify-plugin"),1),w=R(require("path"),1),F=async(e,r)=>{if(!e.isMultipart())return r.status(415).send({statusCode:415,error:"Unsupported Media Type",message:"Multipart/form-data expected"});let d=e.parts(),f={};for await(let m of d)if(m.type==="field")f[m.fieldname]=m.value;else{let t=Symbol.for("file-stream");e[t]=m}e.body=f},P=async(e,r)=>{let d=t=>{if(r.errorHandler){let n=r.errorHandler(t);if(n)return n}return{message:"Internal Server Error",statusCode:500}};if(e.hasDecorator("viteInitDone")&&e.viteInitDone)return;if(!e.hasDecorator("multipartErrors"))try{let t=await import("@fastify/multipart");await e.register(t.default)}catch(t){if(t.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw t}let f=process.env.NODE_ENV==="production";if(!f){if(!e.hasDecorator("use"))try{let o=await import("@fastify/middie");await e.register(o.default,{hook:"onRequest"})}catch(o){if(o.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw o}let t=await import("vite"),n=r.viteConfig||{},l=await t.createServer({root:r.root,appType:"custom",...n,server:{hmr:{port:24678},...n.server,middlewareMode:!0}});e.use(l.middlewares),e.hasDecorator("viteServer")||e.decorate("viteServer",l),console.log("\u{1F680} [Fastify-SSR] Vite Dev Server Ready")}e.decorate("viteInitDone",!0);let m=async(t,n,l)=>{try{let o=t.raw.url;if(w.default.extname(o)!==""){n.status(404).send(`File not found: ${o}`);return}let u="";!f&&e.viteServer&&(u=await e.viteServer.transformIndexHtml(o,"<html><head></head><body></body></html>"),u=u.substring(u.indexOf("<head>")+6,u.indexOf("</head>")));let h=f?await import(r.prodEntryFile):await e.viteServer.ssrLoadModule(r.devEntryFile),s=h.render||h.default;if(typeof s!="function")throw new Error(`Entry file ${r.devEntryFile} must export a 'render' function.`);await s({req:t,reply:n,head:u,data:l})}catch(o){e.viteServer?.ssrFixStacktrace(o),console.error("[SSR Error]:",o),n.sent||n.status(500).send("Internal Server Error")}};e.decorate("addRpcRoute",function(t,n){let{handler:l,schema:o,...u}=n,h=`/rpc${t}`,s={...u,schema:o};if(o?.consumes?.includes("multipart/form-data")){let a=s.preValidation;s.preValidation=a?Array.isArray(a)?[F,...a]:[F,a]:F}this.route({method:"POST",url:h,...s,handler:async(a,i)=>{try{let p=await l.call(this,a,i);return i.sent?void 0:p}catch(p){if(console.error(`[RPC Error] ${h}:`,p),!i.sent){let{statusCode:y,message:E}=d(p);i.status(y).send({error:{message:E}})}}}})}),e.decorate("addRenderRoute",function(t,n){let{handler:l,schema:o,...u}=n||{},h=async(s,c,a)=>{try{let i=await l?.call(this,s,c);return a?i:m(s,c,i)}catch(i){if(console.error(`[Render Error] ${t}:`,i),!c.sent){let{statusCode:p,message:y}=d(i);if(a)c.status(p).send({error:{message:y}});else return m(s,c,{ssrError:{statusCode:500,message:"Internal Error"}})}}};if(this.route({method:"GET",url:t,schema:o,...u,handler:(s,c)=>h(s,c,!1)}),t!=="*"&&t!=="/*"){this.route({method:"GET",url:`/loader${t}`,schema:o,...u,handler:(a,i)=>h(a,i,!0)});let s=t.endsWith("/")?"*":"/*",c=`${t}${s}`;this.route({method:"GET",url:c,schema:o,...u,handler:(a,i)=>h(a,i,!1)})}}),e.decorate("addLoaderRoute",function(t,n){let{handler:l,schema:o,...u}=n,h=`/api${t}`;this.route({method:"GET",url:h,schema:o,...u,handler:async(s,c)=>{try{let a=await l.call(this,s,c);return c.sent?void 0:a}catch(a){if(console.error(`[Loader API Error] ${h}:`,a),!c.sent){let{statusCode:i,message:p}=d(a);c.status(i).send({error:{message:p}})}}}})})},A=(0,v.default)(P,{name:"fastify-b-ssr"});
1
+ "use strict";var g=Object.create;var S=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty;var G=(e,r)=>{for(var d in r)S(e,d,{get:r[d],enumerable:!0})},T=(e,r,d,f)=>{if(r&&typeof r=="object"||typeof r=="function")for(let m of O(r))!D.call(e,m)&&m!==d&&S(e,m,{get:()=>r[m],enumerable:!(f=x(r,m))||f.enumerable});return e};var R=(e,r,d)=>(d=e!=null?g(I(e)):{},T(r||!e||!e.__esModule?S(d,"default",{value:e,enumerable:!0}):d,e)),k=e=>T(S({},"__esModule",{value:!0}),e);var C={};G(C,{default:()=>A});module.exports=k(C);var H=require("@fastify/multipart"),w=R(require("fastify-plugin"),1),v=R(require("path"),1),F=async(e,r)=>{if(!e.isMultipart())return r.status(415).send({statusCode:415,error:"Unsupported Media Type",message:"Multipart/form-data expected"});let d=e.parts(),f={};for await(let m of d)if(m.type==="field")f[m.fieldname]=m.value;else{let t=Symbol.for("file-stream");e[t]=m}e.body=f},P=async(e,r)=>{let d=t=>{if(r.errorHandler){let n=r.errorHandler(t);if(n)return n}return{message:"Internal Server Error",statusCode:500}};if(e.hasDecorator("viteInitDone")&&e.viteInitDone)return;if(!e.hasDecorator("multipartErrors"))try{let t=await import("@fastify/multipart");await e.register(t.default)}catch(t){if(t.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw t}let f=process.env.NODE_ENV==="production";if(!f){if(!e.hasDecorator("use"))try{let o=await import("@fastify/middie");await e.register(o.default,{hook:"onRequest"})}catch(o){if(o.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw o}let t=await import("vite"),n=r.viteConfig||{},l=await t.createServer({root:r.root,appType:"custom",...n,server:{hmr:{port:24678},...n.server,middlewareMode:!0}});e.use(l.middlewares),e.hasDecorator("viteServer")||e.decorate("viteServer",l),console.log("\u{1F680} [Fastify-SSR] Vite Dev Server Ready")}e.decorate("viteInitDone",!0);let m=async(t,n,l)=>{try{let o=t.raw.url;if(v.default.extname(o)!==""){n.status(404).send(`File not found: ${o}`);return}let u="";!f&&e.viteServer&&(u=await e.viteServer.transformIndexHtml(o,"<html><head></head><body></body></html>"),u=u.substring(u.indexOf("<head>")+6,u.indexOf("</head>")));let h=f?await import(v.default.resolve(r.root,r.prodEntryFile)):await e.viteServer.ssrLoadModule(r.devEntryFile),s=h.render||h.default;if(typeof s!="function")throw new Error(`Entry file ${r.devEntryFile} must export a 'render' function.`);await s({req:t,reply:n,head:u,data:l})}catch(o){e.viteServer?.ssrFixStacktrace(o),console.error("[SSR Error]:",o),n.sent||n.status(500).send("Internal Server Error")}};e.decorate("addRpcRoute",function(t,n){let{handler:l,schema:o,...u}=n,h=`/rpc${t}`,s={...u,schema:o};if(o?.consumes?.includes("multipart/form-data")){let a=s.preValidation;s.preValidation=a?Array.isArray(a)?[F,...a]:[F,a]:F}this.route({method:"POST",url:h,...s,handler:async(a,i)=>{try{let p=await l.call(this,a,i);return i.sent?void 0:p}catch(p){if(console.error(`[RPC Error] ${h}:`,p),!i.sent){let{statusCode:y,message:E}=d(p);i.status(y).send({error:{message:E}})}}}})}),e.decorate("addRenderRoute",function(t,n){let{handler:l,schema:o,...u}=n||{},h=async(s,c,a)=>{try{let i=await l?.call(this,s,c);return a?i:m(s,c,i)}catch(i){if(console.error(`[Render Error] ${t}:`,i),!c.sent){let{statusCode:p,message:y}=d(i);if(a)c.status(p).send({error:{message:y}});else return m(s,c,{ssrError:{statusCode:500,message:"Internal Error"}})}}};if(this.route({method:"GET",url:t,schema:o,...u,handler:(s,c)=>h(s,c,!1)}),t!=="*"&&t!=="/*"){this.route({method:"GET",url:`/loader${t}`,schema:o,...u,handler:(a,i)=>h(a,i,!0)});let s=t.endsWith("/")?"*":"/*",c=`${t}${s}`;this.route({method:"GET",url:c,schema:o,...u,handler:(a,i)=>h(a,i,!1)})}}),e.decorate("addLoaderRoute",function(t,n){let{handler:l,schema:o,...u}=n,h=`/api${t}`;this.route({method:"GET",url:h,schema:o,...u,handler:async(s,c)=>{try{let a=await l.call(this,s,c);return c.sent?void 0:a}catch(a){if(console.error(`[Loader API Error] ${h}:`,a),!c.sent){let{statusCode:i,message:p}=d(a);c.status(i).send({error:{message:p}})}}}})})},A=(0,w.default)(P,{name:"fastify-b-ssr"});
@@ -1 +1 @@
1
- import"@fastify/multipart";import F from"fastify-plugin";import T from"path";var S=async(t,m)=>{if(!t.isMultipart())return m.status(415).send({statusCode:415,error:"Unsupported Media Type",message:"Multipart/form-data expected"});let p=t.parts(),f={};for await(let l of p)if(l.type==="field")f[l.fieldname]=l.value;else{let e=Symbol.for("file-stream");t[e]=l}t.body=f},v=async(t,m)=>{let p=e=>{if(m.errorHandler){let a=m.errorHandler(e);if(a)return a}return{message:"Internal Server Error",statusCode:500}};if(t.hasDecorator("viteInitDone")&&t.viteInitDone)return;if(!t.hasDecorator("multipartErrors"))try{let e=await import("@fastify/multipart");await t.register(e.default)}catch(e){if(e.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw e}let f=process.env.NODE_ENV==="production";if(!f){if(!t.hasDecorator("use"))try{let r=await import("@fastify/middie");await t.register(r.default,{hook:"onRequest"})}catch(r){if(r.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw r}let e=await import("vite"),a=m.viteConfig||{},u=await e.createServer({root:m.root,appType:"custom",...a,server:{hmr:{port:24678},...a.server,middlewareMode:!0}});t.use(u.middlewares),t.hasDecorator("viteServer")||t.decorate("viteServer",u),console.log("\u{1F680} [Fastify-SSR] Vite Dev Server Ready")}t.decorate("viteInitDone",!0);let l=async(e,a,u)=>{try{let r=e.raw.url;if(T.extname(r)!==""){a.status(404).send(`File not found: ${r}`);return}let c="";!f&&t.viteServer&&(c=await t.viteServer.transformIndexHtml(r,"<html><head></head><body></body></html>"),c=c.substring(c.indexOf("<head>")+6,c.indexOf("</head>")));let d=f?await import(m.prodEntryFile):await t.viteServer.ssrLoadModule(m.devEntryFile),n=d.render||d.default;if(typeof n!="function")throw new Error(`Entry file ${m.devEntryFile} must export a 'render' function.`);await n({req:e,reply:a,head:c,data:u})}catch(r){t.viteServer?.ssrFixStacktrace(r),console.error("[SSR Error]:",r),a.sent||a.status(500).send("Internal Server Error")}};t.decorate("addRpcRoute",function(e,a){let{handler:u,schema:r,...c}=a,d=`/rpc${e}`,n={...c,schema:r};if(r?.consumes?.includes("multipart/form-data")){let o=n.preValidation;n.preValidation=o?Array.isArray(o)?[S,...o]:[S,o]:S}this.route({method:"POST",url:d,...n,handler:async(o,s)=>{try{let h=await u.call(this,o,s);return s.sent?void 0:h}catch(h){if(console.error(`[RPC Error] ${d}:`,h),!s.sent){let{statusCode:R,message:y}=p(h);s.status(R).send({error:{message:y}})}}}})}),t.decorate("addRenderRoute",function(e,a){let{handler:u,schema:r,...c}=a||{},d=async(n,i,o)=>{try{let s=await u?.call(this,n,i);return o?s:l(n,i,s)}catch(s){if(console.error(`[Render Error] ${e}:`,s),!i.sent){let{statusCode:h,message:R}=p(s);if(o)i.status(h).send({error:{message:R}});else return l(n,i,{ssrError:{statusCode:500,message:"Internal Error"}})}}};if(this.route({method:"GET",url:e,schema:r,...c,handler:(n,i)=>d(n,i,!1)}),e!=="*"&&e!=="/*"){this.route({method:"GET",url:`/loader${e}`,schema:r,...c,handler:(o,s)=>d(o,s,!0)});let n=e.endsWith("/")?"*":"/*",i=`${e}${n}`;this.route({method:"GET",url:i,schema:r,...c,handler:(o,s)=>d(o,s,!1)})}}),t.decorate("addLoaderRoute",function(e,a){let{handler:u,schema:r,...c}=a,d=`/api${e}`;this.route({method:"GET",url:d,schema:r,...c,handler:async(n,i)=>{try{let o=await u.call(this,n,i);return i.sent?void 0:o}catch(o){if(console.error(`[Loader API Error] ${d}:`,o),!i.sent){let{statusCode:s,message:h}=p(o);i.status(s).send({error:{message:h}})}}}})})},x=F(v,{name:"fastify-b-ssr"});export{x as default};
1
+ import"@fastify/multipart";import v from"fastify-plugin";import y from"path";var S=async(t,u)=>{if(!t.isMultipart())return u.status(415).send({statusCode:415,error:"Unsupported Media Type",message:"Multipart/form-data expected"});let p=t.parts(),f={};for await(let l of p)if(l.type==="field")f[l.fieldname]=l.value;else{let e=Symbol.for("file-stream");t[e]=l}t.body=f},T=async(t,u)=>{let p=e=>{if(u.errorHandler){let a=u.errorHandler(e);if(a)return a}return{message:"Internal Server Error",statusCode:500}};if(t.hasDecorator("viteInitDone")&&t.viteInitDone)return;if(!t.hasDecorator("multipartErrors"))try{let e=await import("@fastify/multipart");await t.register(e.default)}catch(e){if(e.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw e}let f=process.env.NODE_ENV==="production";if(!f){if(!t.hasDecorator("use"))try{let r=await import("@fastify/middie");await t.register(r.default,{hook:"onRequest"})}catch(r){if(r.code!=="FST_ERR_DEC_ALREADY_PRESENT")throw r}let e=await import("vite"),a=u.viteConfig||{},m=await e.createServer({root:u.root,appType:"custom",...a,server:{hmr:{port:24678},...a.server,middlewareMode:!0}});t.use(m.middlewares),t.hasDecorator("viteServer")||t.decorate("viteServer",m),console.log("\u{1F680} [Fastify-SSR] Vite Dev Server Ready")}t.decorate("viteInitDone",!0);let l=async(e,a,m)=>{try{let r=e.raw.url;if(y.extname(r)!==""){a.status(404).send(`File not found: ${r}`);return}let c="";!f&&t.viteServer&&(c=await t.viteServer.transformIndexHtml(r,"<html><head></head><body></body></html>"),c=c.substring(c.indexOf("<head>")+6,c.indexOf("</head>")));let d=f?await import(y.resolve(u.root,u.prodEntryFile)):await t.viteServer.ssrLoadModule(u.devEntryFile),n=d.render||d.default;if(typeof n!="function")throw new Error(`Entry file ${u.devEntryFile} must export a 'render' function.`);await n({req:e,reply:a,head:c,data:m})}catch(r){t.viteServer?.ssrFixStacktrace(r),console.error("[SSR Error]:",r),a.sent||a.status(500).send("Internal Server Error")}};t.decorate("addRpcRoute",function(e,a){let{handler:m,schema:r,...c}=a,d=`/rpc${e}`,n={...c,schema:r};if(r?.consumes?.includes("multipart/form-data")){let o=n.preValidation;n.preValidation=o?Array.isArray(o)?[S,...o]:[S,o]:S}this.route({method:"POST",url:d,...n,handler:async(o,s)=>{try{let h=await m.call(this,o,s);return s.sent?void 0:h}catch(h){if(console.error(`[RPC Error] ${d}:`,h),!s.sent){let{statusCode:R,message:F}=p(h);s.status(R).send({error:{message:F}})}}}})}),t.decorate("addRenderRoute",function(e,a){let{handler:m,schema:r,...c}=a||{},d=async(n,i,o)=>{try{let s=await m?.call(this,n,i);return o?s:l(n,i,s)}catch(s){if(console.error(`[Render Error] ${e}:`,s),!i.sent){let{statusCode:h,message:R}=p(s);if(o)i.status(h).send({error:{message:R}});else return l(n,i,{ssrError:{statusCode:500,message:"Internal Error"}})}}};if(this.route({method:"GET",url:e,schema:r,...c,handler:(n,i)=>d(n,i,!1)}),e!=="*"&&e!=="/*"){this.route({method:"GET",url:`/loader${e}`,schema:r,...c,handler:(o,s)=>d(o,s,!0)});let n=e.endsWith("/")?"*":"/*",i=`${e}${n}`;this.route({method:"GET",url:i,schema:r,...c,handler:(o,s)=>d(o,s,!1)})}}),t.decorate("addLoaderRoute",function(e,a){let{handler:m,schema:r,...c}=a,d=`/api${e}`;this.route({method:"GET",url:d,schema:r,...c,handler:async(n,i)=>{try{let o=await m.call(this,n,i);return i.sent?void 0:o}catch(o){if(console.error(`[Loader API Error] ${d}:`,o),!i.sent){let{statusCode:s,message:h}=p(o);i.status(s).send({error:{message:h}})}}}})})},x=v(T,{name:"fastify-b-ssr"});export{x as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobtail.software/b-ssr",
3
- "version": "1.0.35",
3
+ "version": "1.0.36",
4
4
  "description": "Fastify + Vite SSR Plugin wrapper with RPC",
5
5
  "author": "Victor Moreno <info@bobtail.software> (https://bobtail.software)",
6
6
  "license": "GPL-3.0",