@inertiajs/core 2.0.6 → 2.0.8

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,2 +1,2 @@
1
- import{createServer as c}from"http";import*as s from"process";var g=t=>new Promise((o,n)=>{let r="";t.on("data",e=>r+=e),t.on("end",()=>o(r)),t.on("error",e=>n(e))}),d=(t,o)=>{let n=o||13714,r={"/health":async()=>({status:"OK",timestamp:Date.now()}),"/shutdown":()=>s.exit(),"/render":async e=>t(JSON.parse(await g(e))),"/404":async()=>({status:"NOT_FOUND",timestamp:Date.now()})};c(async(e,a)=>{let i=r[e.url]||r["/404"];try{a.writeHead(200,{"Content-Type":"application/json",Server:"Inertia.js SSR"}),a.write(JSON.stringify(await i(e)))}catch(p){console.error(p)}a.end()}).listen(n,()=>console.log("Inertia SSR server started.")),console.log(`Starting SSR server on port ${n}...`)};export{d as default};
1
+ import{createServer as u}from"http";import*as c from"process";import a from"node:cluster";import{availableParallelism as d}from"node:os";var g=o=>new Promise((r,n)=>{let s="";o.on("data",t=>s+=t),o.on("end",()=>r(s)),o.on("error",t=>n(t))}),P=(o,r)=>{let n=typeof r=="number"?r:r?.port??13714,s=typeof r=="object"&&r?.cluster!==void 0?r.cluster:!1,t=e=>{console.log(s&&!a.isPrimary?`[${a.worker?.id??"N/A"} / ${a.worker?.process?.pid??"N/A"}] ${e}`:e)};if(s&&a.isPrimary){t("Primary Inertia SSR server process started...");for(let e=0;e<d();e++)a.fork();return}let p={"/health":async()=>({status:"OK",timestamp:Date.now()}),"/shutdown":()=>c.exit(),"/render":async e=>o(JSON.parse(await g(e))),"/404":async()=>({status:"NOT_FOUND",timestamp:Date.now()})};u(async(e,i)=>{let l=p[e.url]||p["/404"];try{i.writeHead(200,{"Content-Type":"application/json",Server:"Inertia.js SSR"}),i.write(JSON.stringify(await l(e)))}catch(m){console.error(m)}i.end()}).listen(n,()=>t("Inertia SSR server started.")),t(`Starting SSR server on port ${n}...`)};export{P as default};
2
2
  //# sourceMappingURL=server.esm.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/server.ts"],
4
- "sourcesContent": ["import { createServer, IncomingMessage } from 'http'\nimport * as process from 'process'\nimport { InertiaAppResponse, Page } from './types'\n\ntype AppCallback = (page: Page) => InertiaAppResponse\ntype RouteHandler = (request: IncomingMessage) => Promise<unknown>\n\nconst readableToString: (readable: IncomingMessage) => Promise<string> = (readable) =>\n new Promise((resolve, reject) => {\n let data = ''\n readable.on('data', (chunk) => (data += chunk))\n readable.on('end', () => resolve(data))\n readable.on('error', (err) => reject(err))\n })\n\nexport default (render: AppCallback, port?: number): void => {\n const _port = port || 13714\n\n const routes: Record<string, RouteHandler> = {\n '/health': async () => ({ status: 'OK', timestamp: Date.now() }),\n '/shutdown': () => process.exit(),\n '/render': async (request) => render(JSON.parse(await readableToString(request))),\n '/404': async () => ({ status: 'NOT_FOUND', timestamp: Date.now() }),\n }\n\n createServer(async (request, response) => {\n const dispatchRoute = routes[<string>request.url] || routes['/404']\n\n try {\n response.writeHead(200, { 'Content-Type': 'application/json', Server: 'Inertia.js SSR' })\n response.write(JSON.stringify(await dispatchRoute(request)))\n } catch (e) {\n console.error(e)\n }\n\n response.end()\n }).listen(_port, () => console.log('Inertia SSR server started.'))\n\n console.log(`Starting SSR server on port ${_port}...`)\n}\n"],
5
- "mappings": "AAAA,OAAS,gBAAAA,MAAqC,OAC9C,UAAYC,MAAa,UAMzB,IAAMC,EAAoEC,GACxE,IAAI,QAAQ,CAACC,EAASC,IAAW,CAC/B,IAAIC,EAAO,GACXH,EAAS,GAAG,OAASI,GAAWD,GAAQC,CAAM,EAC9CJ,EAAS,GAAG,MAAO,IAAMC,EAAQE,CAAI,CAAC,EACtCH,EAAS,GAAG,QAAUK,GAAQH,EAAOG,CAAG,CAAC,CAC3C,CAAC,EAEIC,EAAQ,CAACC,EAAqBC,IAAwB,CAC3D,IAAMC,EAAQD,GAAQ,MAEhBE,EAAuC,CAC3C,UAAW,UAAa,CAAE,OAAQ,KAAM,UAAW,KAAK,IAAI,CAAE,GAC9D,YAAa,IAAc,OAAK,EAChC,UAAW,MAAOC,GAAYJ,EAAO,KAAK,MAAM,MAAMR,EAAiBY,CAAO,CAAC,CAAC,EAChF,OAAQ,UAAa,CAAE,OAAQ,YAAa,UAAW,KAAK,IAAI,CAAE,EACpE,EAEAd,EAAa,MAAOc,EAASC,IAAa,CACxC,IAAMC,EAAgBH,EAAeC,EAAQ,GAAG,GAAKD,EAAO,MAAM,EAElE,GAAI,CACFE,EAAS,UAAU,IAAK,CAAE,eAAgB,mBAAoB,OAAQ,gBAAiB,CAAC,EACxFA,EAAS,MAAM,KAAK,UAAU,MAAMC,EAAcF,CAAO,CAAC,CAAC,CAC7D,OAASG,EAAG,CACV,QAAQ,MAAMA,CAAC,CACjB,CAEAF,EAAS,IAAI,CACf,CAAC,EAAE,OAAOH,EAAO,IAAM,QAAQ,IAAI,6BAA6B,CAAC,EAEjE,QAAQ,IAAI,+BAA+BA,CAAK,KAAK,CACvD",
6
- "names": ["createServer", "process", "readableToString", "readable", "resolve", "reject", "data", "chunk", "err", "server_default", "render", "port", "_port", "routes", "request", "response", "dispatchRoute", "e"]
4
+ "sourcesContent": ["import { createServer, IncomingMessage } from 'http'\nimport * as process from 'process'\nimport { InertiaAppResponse, Page } from './types'\nimport cluster from 'node:cluster';\nimport { availableParallelism } from 'node:os';\n\ntype AppCallback = (page: Page) => InertiaAppResponse\ntype RouteHandler = (request: IncomingMessage) => Promise<unknown>\ntype ServerOptions = {\n port?: number\n cluster?: boolean\n}\ntype Port = number\n\nconst readableToString: (readable: IncomingMessage) => Promise<string> = (readable) =>\n new Promise((resolve, reject) => {\n let data = ''\n readable.on('data', (chunk) => (data += chunk))\n readable.on('end', () => resolve(data))\n readable.on('error', (err) => reject(err))\n })\n\nexport default (render: AppCallback, options?: Port | ServerOptions): void => {\n const _port = typeof options === 'number' ? options : options?.port ?? 13714;\n const _useCluster = typeof options === 'object' && options?.cluster !== undefined ? options.cluster : false;\n\n const log = (message: string) => {\n console.log(_useCluster && !cluster.isPrimary ? `[${cluster.worker?.id ?? 'N/A'} / ${cluster.worker?.process?.pid ?? 'N/A'}] ${message}` : message)\n }\n\n if (_useCluster && cluster.isPrimary) {\n log('Primary Inertia SSR server process started...')\n\n for (let i = 0; i < availableParallelism(); i++) {\n cluster.fork()\n }\n\n return\n }\n\n const routes: Record<string, RouteHandler> = {\n '/health': async () => ({ status: 'OK', timestamp: Date.now() }),\n '/shutdown': () => process.exit(),\n '/render': async (request) => render(JSON.parse(await readableToString(request))),\n '/404': async () => ({ status: 'NOT_FOUND', timestamp: Date.now() }),\n }\n\n createServer(async (request, response) => {\n const dispatchRoute = routes[<string>request.url] || routes['/404']\n\n try {\n response.writeHead(200, { 'Content-Type': 'application/json', Server: 'Inertia.js SSR' })\n response.write(JSON.stringify(await dispatchRoute(request)))\n } catch (e) {\n console.error(e)\n }\n\n response.end()\n }).listen(_port, () => log('Inertia SSR server started.'))\n\n log(`Starting SSR server on port ${_port}...`)\n}\n"],
5
+ "mappings": "AAAA,OAAS,gBAAAA,MAAqC,OAC9C,UAAYC,MAAa,UAEzB,OAAOC,MAAa,eACpB,OAAS,wBAAAC,MAA4B,UAUrC,IAAMC,EAAoEC,GACxE,IAAI,QAAQ,CAACC,EAASC,IAAW,CAC/B,IAAIC,EAAO,GACXH,EAAS,GAAG,OAASI,GAAWD,GAAQC,CAAM,EAC9CJ,EAAS,GAAG,MAAO,IAAMC,EAAQE,CAAI,CAAC,EACtCH,EAAS,GAAG,QAAUK,GAAQH,EAAOG,CAAG,CAAC,CAC3C,CAAC,EAEIC,EAAQ,CAACC,EAAqBC,IAAyC,CAC5E,IAAMC,EAAQ,OAAOD,GAAY,SAAWA,EAAUA,GAAS,MAAQ,MACjEE,EAAc,OAAOF,GAAY,UAAYA,GAAS,UAAY,OAAYA,EAAQ,QAAU,GAEhGG,EAAOC,GAAoB,CAC/B,QAAQ,IAAIF,GAAe,CAACb,EAAQ,UAAY,IAAIA,EAAQ,QAAQ,IAAM,KAAK,MAAMA,EAAQ,QAAQ,SAAS,KAAO,KAAK,KAAKe,CAAO,GAAKA,CAAO,CACpJ,EAEA,GAAIF,GAAeb,EAAQ,UAAW,CACpCc,EAAI,+CAA+C,EAEnD,QAASE,EAAI,EAAGA,EAAIf,EAAqB,EAAGe,IAC1ChB,EAAQ,KAAK,EAGf,MACF,CAEA,IAAMiB,EAAuC,CAC3C,UAAW,UAAa,CAAE,OAAQ,KAAM,UAAW,KAAK,IAAI,CAAE,GAC9D,YAAa,IAAc,OAAK,EAChC,UAAW,MAAOC,GAAYR,EAAO,KAAK,MAAM,MAAMR,EAAiBgB,CAAO,CAAC,CAAC,EAChF,OAAQ,UAAa,CAAE,OAAQ,YAAa,UAAW,KAAK,IAAI,CAAE,EACpE,EAEApB,EAAa,MAAOoB,EAASC,IAAa,CACxC,IAAMC,EAAgBH,EAAeC,EAAQ,GAAG,GAAKD,EAAO,MAAM,EAElE,GAAI,CACFE,EAAS,UAAU,IAAK,CAAE,eAAgB,mBAAoB,OAAQ,gBAAiB,CAAC,EACxFA,EAAS,MAAM,KAAK,UAAU,MAAMC,EAAcF,CAAO,CAAC,CAAC,CAC7D,OAASG,EAAG,CACV,QAAQ,MAAMA,CAAC,CACjB,CAEAF,EAAS,IAAI,CACf,CAAC,EAAE,OAAOP,EAAO,IAAME,EAAI,6BAA6B,CAAC,EAEzDA,EAAI,+BAA+BF,CAAK,KAAK,CAC/C",
6
+ "names": ["createServer", "process", "cluster", "availableParallelism", "readableToString", "readable", "resolve", "reject", "data", "chunk", "err", "server_default", "render", "options", "_port", "_useCluster", "log", "message", "i", "routes", "request", "response", "dispatchRoute", "e"]
7
7
  }
package/dist/server.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var m=Object.create;var a=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var y=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},i=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of S(t))!w.call(e,r)&&r!==n&&a(e,r,{get:()=>t[r],enumerable:!(o=d(t,r))||o.enumerable});return e};var R=(e,t,n)=>(n=e!=null?m(u(e)):{},i(t||!e||!e.__esModule?a(n,"default",{value:e,enumerable:!0}):n,e)),I=e=>i(a({},"__esModule",{value:!0}),e);var v={};y(v,{default:()=>h});module.exports=I(v);var p=require("http"),c=R(require("process"),1),f=e=>new Promise((t,n)=>{let o="";e.on("data",r=>o+=r),e.on("end",()=>t(o)),e.on("error",r=>n(r))}),h=(e,t)=>{let n=t||13714,o={"/health":async()=>({status:"OK",timestamp:Date.now()}),"/shutdown":()=>c.exit(),"/render":async r=>e(JSON.parse(await f(r))),"/404":async()=>({status:"NOT_FOUND",timestamp:Date.now()})};(0,p.createServer)(async(r,s)=>{let g=o[r.url]||o["/404"];try{s.writeHead(200,{"Content-Type":"application/json",Server:"Inertia.js SSR"}),s.write(JSON.stringify(await g(r)))}catch(l){console.error(l)}s.end()}).listen(n,()=>console.log("Inertia SSR server started.")),console.log(`Starting SSR server on port ${n}...`)};
1
+ "use strict";var f=Object.create;var i=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var P=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var b=(e,r)=>{for(var t in r)i(e,t,{get:r[t],enumerable:!0})},l=(e,r,t,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of P(r))!v.call(e,o)&&o!==t&&i(e,o,{get:()=>r[o],enumerable:!(a=w(r,o))||a.enumerable});return e};var m=(e,r,t)=>(t=e!=null?f(R(e)):{},l(r||!e||!e.__esModule?i(t,"default",{value:e,enumerable:!0}):t,e)),I=e=>l(i({},"__esModule",{value:!0}),e);var A={};b(A,{default:()=>k});module.exports=I(A);var u=require("http"),d=m(require("process"),1),n=m(require("node:cluster"),1),g=require("node:os"),O=e=>new Promise((r,t)=>{let a="";e.on("data",o=>a+=o),e.on("end",()=>r(a)),e.on("error",o=>t(o))}),k=(e,r)=>{let t=typeof r=="number"?r:r?.port??13714,a=typeof r=="object"&&r?.cluster!==void 0?r.cluster:!1,o=s=>{console.log(a&&!n.default.isPrimary?`[${n.default.worker?.id??"N/A"} / ${n.default.worker?.process?.pid??"N/A"}] ${s}`:s)};if(a&&n.default.isPrimary){o("Primary Inertia SSR server process started...");for(let s=0;s<(0,g.availableParallelism)();s++)n.default.fork();return}let c={"/health":async()=>({status:"OK",timestamp:Date.now()}),"/shutdown":()=>d.exit(),"/render":async s=>e(JSON.parse(await O(s))),"/404":async()=>({status:"NOT_FOUND",timestamp:Date.now()})};(0,u.createServer)(async(s,p)=>{let y=c[s.url]||c["/404"];try{p.writeHead(200,{"Content-Type":"application/json",Server:"Inertia.js SSR"}),p.write(JSON.stringify(await y(s)))}catch(S){console.error(S)}p.end()}).listen(t,()=>o("Inertia SSR server started.")),o(`Starting SSR server on port ${t}...`)};
2
2
  //# sourceMappingURL=server.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/server.ts"],
4
- "sourcesContent": ["import { createServer, IncomingMessage } from 'http'\nimport * as process from 'process'\nimport { InertiaAppResponse, Page } from './types'\n\ntype AppCallback = (page: Page) => InertiaAppResponse\ntype RouteHandler = (request: IncomingMessage) => Promise<unknown>\n\nconst readableToString: (readable: IncomingMessage) => Promise<string> = (readable) =>\n new Promise((resolve, reject) => {\n let data = ''\n readable.on('data', (chunk) => (data += chunk))\n readable.on('end', () => resolve(data))\n readable.on('error', (err) => reject(err))\n })\n\nexport default (render: AppCallback, port?: number): void => {\n const _port = port || 13714\n\n const routes: Record<string, RouteHandler> = {\n '/health': async () => ({ status: 'OK', timestamp: Date.now() }),\n '/shutdown': () => process.exit(),\n '/render': async (request) => render(JSON.parse(await readableToString(request))),\n '/404': async () => ({ status: 'NOT_FOUND', timestamp: Date.now() }),\n }\n\n createServer(async (request, response) => {\n const dispatchRoute = routes[<string>request.url] || routes['/404']\n\n try {\n response.writeHead(200, { 'Content-Type': 'application/json', Server: 'Inertia.js SSR' })\n response.write(JSON.stringify(await dispatchRoute(request)))\n } catch (e) {\n console.error(e)\n }\n\n response.end()\n }).listen(_port, () => console.log('Inertia SSR server started.'))\n\n console.log(`Starting SSR server on port ${_port}...`)\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA8C,gBAC9CC,EAAyB,wBAMnBC,EAAoEC,GACxE,IAAI,QAAQ,CAACC,EAASC,IAAW,CAC/B,IAAIC,EAAO,GACXH,EAAS,GAAG,OAASI,GAAWD,GAAQC,CAAM,EAC9CJ,EAAS,GAAG,MAAO,IAAMC,EAAQE,CAAI,CAAC,EACtCH,EAAS,GAAG,QAAUK,GAAQH,EAAOG,CAAG,CAAC,CAC3C,CAAC,EAEIV,EAAQ,CAACW,EAAqBC,IAAwB,CAC3D,IAAMC,EAAQD,GAAQ,MAEhBE,EAAuC,CAC3C,UAAW,UAAa,CAAE,OAAQ,KAAM,UAAW,KAAK,IAAI,CAAE,GAC9D,YAAa,IAAc,OAAK,EAChC,UAAW,MAAOC,GAAYJ,EAAO,KAAK,MAAM,MAAMP,EAAiBW,CAAO,CAAC,CAAC,EAChF,OAAQ,UAAa,CAAE,OAAQ,YAAa,UAAW,KAAK,IAAI,CAAE,EACpE,KAEA,gBAAa,MAAOA,EAASC,IAAa,CACxC,IAAMC,EAAgBH,EAAeC,EAAQ,GAAG,GAAKD,EAAO,MAAM,EAElE,GAAI,CACFE,EAAS,UAAU,IAAK,CAAE,eAAgB,mBAAoB,OAAQ,gBAAiB,CAAC,EACxFA,EAAS,MAAM,KAAK,UAAU,MAAMC,EAAcF,CAAO,CAAC,CAAC,CAC7D,OAASG,EAAG,CACV,QAAQ,MAAMA,CAAC,CACjB,CAEAF,EAAS,IAAI,CACf,CAAC,EAAE,OAAOH,EAAO,IAAM,QAAQ,IAAI,6BAA6B,CAAC,EAEjE,QAAQ,IAAI,+BAA+BA,CAAK,KAAK,CACvD",
6
- "names": ["server_exports", "__export", "server_default", "__toCommonJS", "import_http", "process", "readableToString", "readable", "resolve", "reject", "data", "chunk", "err", "render", "port", "_port", "routes", "request", "response", "dispatchRoute", "e"]
4
+ "sourcesContent": ["import { createServer, IncomingMessage } from 'http'\nimport * as process from 'process'\nimport { InertiaAppResponse, Page } from './types'\nimport cluster from 'node:cluster';\nimport { availableParallelism } from 'node:os';\n\ntype AppCallback = (page: Page) => InertiaAppResponse\ntype RouteHandler = (request: IncomingMessage) => Promise<unknown>\ntype ServerOptions = {\n port?: number\n cluster?: boolean\n}\ntype Port = number\n\nconst readableToString: (readable: IncomingMessage) => Promise<string> = (readable) =>\n new Promise((resolve, reject) => {\n let data = ''\n readable.on('data', (chunk) => (data += chunk))\n readable.on('end', () => resolve(data))\n readable.on('error', (err) => reject(err))\n })\n\nexport default (render: AppCallback, options?: Port | ServerOptions): void => {\n const _port = typeof options === 'number' ? options : options?.port ?? 13714;\n const _useCluster = typeof options === 'object' && options?.cluster !== undefined ? options.cluster : false;\n\n const log = (message: string) => {\n console.log(_useCluster && !cluster.isPrimary ? `[${cluster.worker?.id ?? 'N/A'} / ${cluster.worker?.process?.pid ?? 'N/A'}] ${message}` : message)\n }\n\n if (_useCluster && cluster.isPrimary) {\n log('Primary Inertia SSR server process started...')\n\n for (let i = 0; i < availableParallelism(); i++) {\n cluster.fork()\n }\n\n return\n }\n\n const routes: Record<string, RouteHandler> = {\n '/health': async () => ({ status: 'OK', timestamp: Date.now() }),\n '/shutdown': () => process.exit(),\n '/render': async (request) => render(JSON.parse(await readableToString(request))),\n '/404': async () => ({ status: 'NOT_FOUND', timestamp: Date.now() }),\n }\n\n createServer(async (request, response) => {\n const dispatchRoute = routes[<string>request.url] || routes['/404']\n\n try {\n response.writeHead(200, { 'Content-Type': 'application/json', Server: 'Inertia.js SSR' })\n response.write(JSON.stringify(await dispatchRoute(request)))\n } catch (e) {\n console.error(e)\n }\n\n response.end()\n }).listen(_port, () => log('Inertia SSR server started.'))\n\n log(`Starting SSR server on port ${_port}...`)\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA8C,gBAC9CC,EAAyB,wBAEzBC,EAAoB,6BACpBC,EAAqC,mBAU/BC,EAAoEC,GACxE,IAAI,QAAQ,CAACC,EAASC,IAAW,CAC/B,IAAIC,EAAO,GACXH,EAAS,GAAG,OAASI,GAAWD,GAAQC,CAAM,EAC9CJ,EAAS,GAAG,MAAO,IAAMC,EAAQE,CAAI,CAAC,EACtCH,EAAS,GAAG,QAAUK,GAAQH,EAAOG,CAAG,CAAC,CAC3C,CAAC,EAEIZ,EAAQ,CAACa,EAAqBC,IAAyC,CAC5E,IAAMC,EAAQ,OAAOD,GAAY,SAAWA,EAAUA,GAAS,MAAQ,MACjEE,EAAc,OAAOF,GAAY,UAAYA,GAAS,UAAY,OAAYA,EAAQ,QAAU,GAEhGG,EAAOC,GAAoB,CAC/B,QAAQ,IAAIF,GAAe,CAAC,EAAAG,QAAQ,UAAY,IAAI,EAAAA,QAAQ,QAAQ,IAAM,KAAK,MAAM,EAAAA,QAAQ,QAAQ,SAAS,KAAO,KAAK,KAAKD,CAAO,GAAKA,CAAO,CACpJ,EAEA,GAAIF,GAAe,EAAAG,QAAQ,UAAW,CACpCF,EAAI,+CAA+C,EAEnD,QAASG,EAAI,EAAGA,KAAI,wBAAqB,EAAGA,IAC1C,EAAAD,QAAQ,KAAK,EAGf,MACF,CAEA,IAAME,EAAuC,CAC3C,UAAW,UAAa,CAAE,OAAQ,KAAM,UAAW,KAAK,IAAI,CAAE,GAC9D,YAAa,IAAc,OAAK,EAChC,UAAW,MAAOC,GAAYT,EAAO,KAAK,MAAM,MAAMP,EAAiBgB,CAAO,CAAC,CAAC,EAChF,OAAQ,UAAa,CAAE,OAAQ,YAAa,UAAW,KAAK,IAAI,CAAE,EACpE,KAEA,gBAAa,MAAOA,EAASC,IAAa,CACxC,IAAMC,EAAgBH,EAAeC,EAAQ,GAAG,GAAKD,EAAO,MAAM,EAElE,GAAI,CACFE,EAAS,UAAU,IAAK,CAAE,eAAgB,mBAAoB,OAAQ,gBAAiB,CAAC,EACxFA,EAAS,MAAM,KAAK,UAAU,MAAMC,EAAcF,CAAO,CAAC,CAAC,CAC7D,OAASG,EAAG,CACV,QAAQ,MAAMA,CAAC,CACjB,CAEAF,EAAS,IAAI,CACf,CAAC,EAAE,OAAOR,EAAO,IAAME,EAAI,6BAA6B,CAAC,EAEzDA,EAAI,+BAA+BF,CAAK,KAAK,CAC/C",
6
+ "names": ["server_exports", "__export", "server_default", "__toCommonJS", "import_http", "process", "import_node_cluster", "import_node_os", "readableToString", "readable", "resolve", "reject", "data", "chunk", "err", "render", "options", "_port", "_useCluster", "log", "message", "cluster", "i", "routes", "request", "response", "dispatchRoute", "e"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inertiajs/core",
3
- "version": "2.0.6",
3
+ "version": "2.0.8",
4
4
  "license": "MIT",
5
5
  "description": "A framework for creating server-driven single page apps.",
6
6
  "contributors": [
@@ -52,12 +52,12 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "axios": "^1.8.2",
55
- "deepmerge": "^4.0.0",
55
+ "es-toolkit": "^1.34.1",
56
56
  "qs": "^6.9.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@types/deepmerge": "^2.2.0",
60
- "@types/node": "^14.0",
60
+ "@types/node": "^18.4",
61
61
  "@types/nprogress": "^0.2.0",
62
62
  "@types/qs": "^6.9.0",
63
63
  "esbuild": "^0.25.0",
@@ -21,7 +21,7 @@ declare class History {
21
21
  page: Page | ArrayBuffer;
22
22
  scrollRegions?: ScrollRegion[];
23
23
  documentScrollPosition?: ScrollRegion;
24
- }, url: string): void;
24
+ }, url?: string): void;
25
25
  protected doPushState(data: {
26
26
  page: Page | ArrayBuffer;
27
27
  scrollRegions?: ScrollRegion[];
@@ -9,7 +9,7 @@ export declare class RequestParams {
9
9
  protected params: InternalActiveVisit;
10
10
  constructor(params: InternalActiveVisit);
11
11
  static create(params: ActiveVisit): RequestParams;
12
- data(): import("./types").RequestPayload;
12
+ data(): import("./types").RequestPayload | null;
13
13
  queryParams(): import("./types").RequestPayload;
14
14
  isPartial(): boolean;
15
15
  onCancelToken(cb: VoidFunction): void;
package/types/router.d.ts CHANGED
@@ -4,12 +4,12 @@ export declare class Router {
4
4
  protected syncRequestStream: RequestStream;
5
5
  protected asyncRequestStream: RequestStream;
6
6
  init({ initialPage, resolveComponent, swapComponent }: RouterInitParams): void;
7
- get(url: URL | string, data?: RequestPayload, options?: VisitHelperOptions): void;
8
- post(url: URL | string, data?: RequestPayload, options?: VisitHelperOptions): void;
9
- put(url: URL | string, data?: RequestPayload, options?: VisitHelperOptions): void;
10
- patch(url: URL | string, data?: RequestPayload, options?: VisitHelperOptions): void;
11
- delete(url: URL | string, options?: Omit<VisitOptions, 'method'>): void;
12
- reload(options?: ReloadOptions): void;
7
+ get<T extends RequestPayload = RequestPayload>(url: URL | string, data?: T, options?: VisitHelperOptions<T>): void;
8
+ post<T extends RequestPayload = RequestPayload>(url: URL | string, data?: T, options?: VisitHelperOptions<T>): void;
9
+ put<T extends RequestPayload = RequestPayload>(url: URL | string, data?: T, options?: VisitHelperOptions<T>): void;
10
+ patch<T extends RequestPayload = RequestPayload>(url: URL | string, data?: T, options?: VisitHelperOptions<T>): void;
11
+ delete<T extends RequestPayload = RequestPayload>(url: URL | string, options?: Omit<VisitOptions<T>, 'method'>): void;
12
+ reload<T extends RequestPayload = RequestPayload>(options?: ReloadOptions<T>): void;
13
13
  remember(data: unknown, key?: string): void;
14
14
  restore(key?: string): unknown;
15
15
  on<TEventName extends GlobalEventNames>(type: TEventName, callback: (event: GlobalEvent<TEventName>) => GlobalEventResult<TEventName>): VoidFunction;
@@ -19,12 +19,12 @@ export declare class Router {
19
19
  stop: VoidFunction;
20
20
  start: VoidFunction;
21
21
  };
22
- visit(href: string | URL, options?: VisitOptions): void;
22
+ visit<T extends RequestPayload = RequestPayload>(href: string | URL, options?: VisitOptions<T>): void;
23
23
  getCached(href: string | URL, options?: VisitOptions): InFlightPrefetch | PrefetchedResponse | null;
24
24
  flush(href: string | URL, options?: VisitOptions): void;
25
25
  flushAll(): void;
26
26
  getPrefetching(href: string | URL, options?: VisitOptions): InFlightPrefetch | PrefetchedResponse | null;
27
- prefetch(href: string | URL, options: Partial<Visit & VisitCallbacks> | undefined, { cacheFor }: PrefetchOptions): void;
27
+ prefetch(href: string | URL, options: Partial<Visit<RequestPayload> & VisitCallbacks> | undefined, { cacheFor }: PrefetchOptions): void;
28
28
  clearHistory(): void;
29
29
  decryptHistory(): Promise<Page>;
30
30
  replace(params: ClientSideVisitOptions): void;
package/types/server.d.ts CHANGED
@@ -1,4 +1,9 @@
1
1
  import { InertiaAppResponse, Page } from './types';
2
2
  type AppCallback = (page: Page) => InertiaAppResponse;
3
- declare const _default: (render: AppCallback, port?: number) => void;
3
+ type ServerOptions = {
4
+ port?: number;
5
+ cluster?: boolean;
6
+ };
7
+ type Port = number;
8
+ declare const _default: (render: AppCallback, options?: Port | ServerOptions) => void;
4
9
  export default _default;
package/types/types.d.ts CHANGED
@@ -10,6 +10,8 @@ export type ErrorBag = Record<string, Errors>;
10
10
  export type FormDataConvertible = Array<FormDataConvertible> | {
11
11
  [key: string]: FormDataConvertible;
12
12
  } | Blob | FormDataEntryValue | Date | boolean | number | null | undefined;
13
+ export type FormDataKeys<T extends Record<any, any>> = T extends T ? keyof T extends infer Key extends Extract<keyof T, string> ? Key extends Key ? T[Key] extends Record<any, any> ? `${Key}.${FormDataKeys<T[Key]>}` | Key : Key : never : never : never;
14
+ export type FormDataValues<T extends Record<any, any>, K extends FormDataKeys<T>> = K extends `${infer P}.${infer Rest}` ? P extends keyof T ? Rest extends FormDataKeys<T[P]> ? FormDataValues<T[P], Rest> : never : never : K extends keyof T ? T[K] : never;
13
15
  export type Method = 'get' | 'post' | 'put' | 'patch' | 'delete';
14
16
  export type RequestPayload = Record<string, FormDataConvertible> | FormData;
15
17
  export interface PageProps {
@@ -27,6 +29,7 @@ export interface Page<SharedProps extends PageProps = PageProps> {
27
29
  encryptHistory: boolean;
28
30
  deferredProps?: Record<string, VisitOptions['only']>;
29
31
  mergeProps?: string[];
32
+ deepMergeProps?: string[];
30
33
  /** @internal */
31
34
  rememberedState: Record<string, unknown>;
32
35
  }
@@ -54,9 +57,9 @@ export type Progress = AxiosProgressEvent;
54
57
  export type LocationVisit = {
55
58
  preserveScroll: boolean;
56
59
  };
57
- export type Visit = {
60
+ export type Visit<T extends RequestPayload = RequestPayload> = {
58
61
  method: Method;
59
- data: RequestPayload;
62
+ data: T;
60
63
  replace: boolean;
61
64
  preserveScroll: PreserveStateOption;
62
65
  preserveState: PreserveStateOption;
@@ -184,13 +187,13 @@ export type VisitCallbacks = {
184
187
  onPrefetched: GlobalEventCallback<'prefetched'>;
185
188
  onPrefetching: GlobalEventCallback<'prefetching'>;
186
189
  };
187
- export type VisitOptions = Partial<Visit & VisitCallbacks>;
188
- export type ReloadOptions = Omit<VisitOptions, 'preserveScroll' | 'preserveState'>;
190
+ export type VisitOptions<T extends RequestPayload = RequestPayload> = Partial<Visit<T> & VisitCallbacks>;
191
+ export type ReloadOptions<T extends RequestPayload = RequestPayload> = Omit<VisitOptions<T>, 'preserveScroll' | 'preserveState'>;
189
192
  export type PollOptions = {
190
193
  keepAlive?: boolean;
191
194
  autoStart?: boolean;
192
195
  };
193
- export type VisitHelperOptions = Omit<VisitOptions, 'method' | 'data'>;
196
+ export type VisitHelperOptions<T extends RequestPayload = RequestPayload> = Omit<VisitOptions<T>, 'method' | 'data'>;
194
197
  export type RouterInitParams = {
195
198
  initialPage: Page;
196
199
  resolveComponent: PageResolver;