@lomray/vite-ssr-boost 8.0.0-beta.1 → 8.0.0-beta.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.
- package/README.md +2 -1
- package/adapters/body.d.ts +1 -1
- package/adapters/body.js +1 -1
- package/adapters/body.js.map +1 -1
- package/adapters/compression.d.ts +5 -5
- package/adapters/compression.js +1 -1
- package/adapters/compression.js.map +1 -1
- package/adapters/edge.d.ts +5 -5
- package/adapters/edge.js.map +1 -1
- package/adapters/express/create-request.d.ts +2 -2
- package/adapters/express/create-request.js.map +1 -1
- package/adapters/express/entry.d.ts +17 -19
- package/adapters/express/entry.js.map +1 -1
- package/adapters/express/prepare-server.d.ts +7 -25
- package/adapters/express/prepare-server.js +1 -1
- package/adapters/express/prepare-server.js.map +1 -1
- package/adapters/express/render.d.ts +14 -15
- package/adapters/express/render.js +1 -1
- package/adapters/express/render.js.map +1 -1
- package/adapters/express/server.d.ts +5 -6
- package/adapters/express/server.js +1 -1
- package/adapters/express/server.js.map +1 -1
- package/adapters/express.d.ts +5 -5
- package/adapters/express.js.map +1 -1
- package/adapters/fastify.d.ts +5 -5
- package/adapters/fastify.js +1 -1
- package/adapters/fastify.js.map +1 -1
- package/adapters/hono.d.ts +2 -2
- package/adapters/hono.js.map +1 -1
- package/adapters/node.d.ts +6 -5
- package/adapters/node.js.map +1 -1
- package/browser/entry.d.ts +9 -9
- package/browser/entry.js +1 -1
- package/browser/entry.js.map +1 -1
- package/cli/build.d.ts +2 -2
- package/cli/build.js.map +1 -1
- package/cli/helpers/keyboard-input.d.ts +1 -1
- package/cli/helpers/keyboard-input.js +1 -1
- package/cli/helpers/keyboard-input.js.map +1 -1
- package/cli/helpers/vite-reset-cache.d.ts +1 -1
- package/cli/helpers/vite-reset-cache.js.map +1 -1
- package/cli/interfaces/actions.d.ts +8 -9
- package/cli/run-amplify-build.d.ts +1 -1
- package/cli/run-amplify-build.js.map +1 -1
- package/cli/run-dev.d.ts +3 -4
- package/cli/run-dev.js.map +1 -1
- package/cli/run-docker-build.d.ts +2 -2
- package/cli/run-docker-build.js.map +1 -1
- package/cli/run-prod.d.ts +4 -5
- package/cli/run-prod.js.map +1 -1
- package/cli/run-serverless.d.ts +2 -2
- package/cli/run-serverless.js.map +1 -1
- package/cli/run-vercel-build.d.ts +1 -1
- package/cli/run-vercel-build.js.map +1 -1
- package/cli.js +1 -1
- package/cli.js.map +1 -1
- package/components/navigate.d.ts +3 -3
- package/components/navigate.js.map +1 -1
- package/components/only-client.d.ts +2 -2
- package/components/only-client.js +1 -1
- package/components/only-client.js.map +1 -1
- package/components/render-client.d.ts +4 -4
- package/components/render-client.js +1 -1
- package/components/render-client.js.map +1 -1
- package/components/response-status.d.ts +2 -2
- package/components/response-status.js.map +1 -1
- package/components/scroll-to-top.d.ts +2 -2
- package/components/scroll-to-top.js +1 -1
- package/components/scroll-to-top.js.map +1 -1
- package/components/with-suspense.d.ts +3 -3
- package/components/with-suspense.js.map +1 -1
- package/constants/cli-actions.d.ts +1 -1
- package/constants/cli-actions.js.map +1 -1
- package/constants/cli-context.d.ts +4 -5
- package/constants/cli-context.js.map +1 -1
- package/constants/cli-name.d.ts +1 -1
- package/constants/cli-name.js.map +1 -1
- package/constants/cli-shortcuts.d.ts +2 -2
- package/constants/cli-shortcuts.js +1 -1
- package/constants/cli-shortcuts.js.map +1 -1
- package/constants/common.js.map +1 -1
- package/constants/plugin-name.d.ts +1 -1
- package/constants/plugin-name.js.map +1 -1
- package/constants/stream-error.d.ts +1 -1
- package/constants/stream-error.js.map +1 -1
- package/context/server.d.ts +3 -4
- package/context/server.js.map +1 -1
- package/core/compose-html.d.ts +2 -2
- package/core/compose-html.js.map +1 -1
- package/core/early-hints.d.ts +2 -2
- package/core/early-hints.js.map +1 -1
- package/core/handler.d.ts +3 -3
- package/core/handler.js.map +1 -1
- package/core/head-response.d.ts +1 -1
- package/core/head-response.js.map +1 -1
- package/core/headers.d.ts +3 -4
- package/core/headers.js +1 -1
- package/core/headers.js.map +1 -1
- package/core/render.d.ts +13 -13
- package/core/render.js +1 -1
- package/core/render.js.map +1 -1
- package/core/transform-html.d.ts +1 -1
- package/core/transform-html.js.map +1 -1
- package/core/types.d.ts +2 -3
- package/edge/render-to-stream.d.ts +2 -2
- package/edge/render-to-stream.js +1 -1
- package/edge/render-to-stream.js.map +1 -1
- package/helpers/build-custom-state.d.ts +1 -1
- package/helpers/build-custom-state.js +1 -1
- package/helpers/build-custom-state.js.map +1 -1
- package/helpers/build-router-state.d.ts +2 -2
- package/helpers/build-router-state.js.map +1 -1
- package/helpers/create-focus-only.d.ts +3 -3
- package/helpers/create-focus-only.js.map +1 -1
- package/helpers/dev-marker.d.ts +1 -1
- package/helpers/dev-marker.js.map +1 -1
- package/helpers/get-server-state.d.ts +1 -1
- package/helpers/get-server-state.js.map +1 -1
- package/helpers/html-escape.d.ts +1 -1
- package/helpers/html-escape.js +1 -1
- package/helpers/html-escape.js.map +1 -1
- package/helpers/import-route.d.ts +7 -7
- package/helpers/import-route.js +1 -1
- package/helpers/import-route.js.map +1 -1
- package/helpers/is-route-file.d.ts +1 -1
- package/helpers/is-route-file.js.map +1 -1
- package/helpers/obtain-stream-error.d.ts +3 -3
- package/helpers/obtain-stream-error.js.map +1 -1
- package/helpers/plugin-config.d.ts +5 -5
- package/helpers/plugin-config.js +1 -1
- package/helpers/plugin-config.js.map +1 -1
- package/helpers/print-server-info.d.ts +3 -4
- package/helpers/print-server-info.js +1 -1
- package/helpers/print-server-info.js.map +1 -1
- package/helpers/print-server-urls.d.ts +2 -2
- package/helpers/print-server-urls.js +1 -1
- package/helpers/print-server-urls.js.map +1 -1
- package/helpers/process-stop.d.ts +1 -1
- package/helpers/process-stop.js.map +1 -1
- package/helpers/resolve-server-urls.d.ts +3 -4
- package/helpers/resolve-server-urls.js +1 -1
- package/helpers/resolve-server-urls.js.map +1 -1
- package/helpers/serialize-errors.d.ts +2 -2
- package/helpers/serialize-errors.js.map +1 -1
- package/helpers/vite-aliases.d.ts +2 -2
- package/helpers/vite-aliases.js +1 -1
- package/helpers/vite-aliases.js.map +1 -1
- package/interfaces/fc-route.d.ts +4 -4
- package/interfaces/fc-route.js.map +1 -1
- package/interfaces/fc.d.ts +3 -4
- package/interfaces/route-object.d.ts +6 -6
- package/node/compress-response.d.ts +2 -2
- package/node/compress-response.js +1 -1
- package/node/compress-response.js.map +1 -1
- package/node/create-headers.d.ts +1 -1
- package/node/create-headers.js.map +1 -1
- package/node/create-request.d.ts +2 -2
- package/node/create-request.js.map +1 -1
- package/node/http.d.ts +4 -6
- package/node/render-to-stream.d.ts +2 -2
- package/node/render-to-stream.js +1 -1
- package/node/render-to-stream.js.map +1 -1
- package/node/request-signal.d.ts +2 -2
- package/node/request-signal.js.map +1 -1
- package/node/split-link-header.d.ts +1 -1
- package/node/split-link-header.js.map +1 -1
- package/node/write-early-hints.d.ts +2 -2
- package/node/write-early-hints.js.map +1 -1
- package/node/write-fetch-response.d.ts +3 -2
- package/node/write-fetch-response.js +1 -1
- package/node/write-fetch-response.js.map +1 -1
- package/package.json +52 -32
- package/plugin.d.ts +7 -7
- package/plugin.js.map +1 -1
- package/plugins/create-spa-index.d.ts +3 -3
- package/plugins/create-spa-index.js.map +1 -1
- package/plugins/handle-custom-entrypoint.d.ts +4 -4
- package/plugins/handle-custom-entrypoint.js +1 -1
- package/plugins/handle-custom-entrypoint.js.map +1 -1
- package/plugins/make-aliases.d.ts +3 -3
- package/plugins/make-aliases.js +1 -1
- package/plugins/make-aliases.js.map +1 -1
- package/plugins/normalize-route.d.ts +3 -3
- package/plugins/normalize-route.js.map +1 -1
- package/services/build.d.ts +5 -51
- package/services/build.js +1 -1
- package/services/build.js.map +1 -1
- package/services/logger.d.ts +2 -30
- package/services/logger.js.map +1 -1
- package/services/parse-routes.d.ts +5 -42
- package/services/parse-routes.js +1 -1
- package/services/parse-routes.js.map +1 -1
- package/services/path-normalize.d.ts +3 -18
- package/services/path-normalize.js +1 -1
- package/services/path-normalize.js.map +1 -1
- package/services/server-api.d.ts +1 -7
- package/services/server-api.js.map +1 -1
- package/services/server-config.d.ts +4 -48
- package/services/server-config.js +1 -1
- package/services/server-config.js.map +1 -1
- package/services/ssr-manifest.d.ts +6 -63
- package/services/ssr-manifest.js +1 -1
- package/services/ssr-manifest.js.map +1 -1
- package/workflow/Dockerfile +1 -1
package/node/request-signal.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TIncomingMessage, TServerResponse } from
|
|
1
|
+
import type { TIncomingMessage, TServerResponse } from './http.js';
|
|
2
2
|
interface IRequestSignal {
|
|
3
3
|
dispose: () => void;
|
|
4
4
|
signal: AbortSignal;
|
|
@@ -7,4 +7,4 @@ interface IRequestSignal {
|
|
|
7
7
|
* Expose incomplete Node requests and disconnected responses as an AbortSignal.
|
|
8
8
|
*/
|
|
9
9
|
declare const createRequestSignal: (req: TIncomingMessage, res: TServerResponse) => IRequestSignal;
|
|
10
|
-
export
|
|
10
|
+
export default createRequestSignal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-signal.js","sources":["../../src/node/request-signal.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"request-signal.js","sources":["../../src/node/request-signal.ts"],"sourcesContent":[null],"names":["createRequestSignal","req","res","controller","AbortController","abort","onClose","writableEnded","once","aborted","destroyed","dispose","off","signal"],"mappings":"AAUA,MAAMA,EAAsB,CAACC,EAAuBC,KAClD,MAAMC,EAAa,IAAIC,gBAKjBC,EAAQ,IAAYF,EAAWE,QAK/BC,EAAU,KACTJ,EAAIK,eACPF,KAmBJ,OAPAJ,EAAIO,KAAK,UAAWH,GACpBH,EAAIM,KAAK,QAASF,IAEdL,EAAIQ,SAAWP,EAAIQ,YACrBL,IAGK,CAAEM,QAZO,KACdV,EAAIW,IAAI,UAAWP,GACnBH,EAAIU,IAAI,QAASN,IAUDO,OAAQV,EAAWU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-link-header.js","sources":["../../src/node/split-link-header.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"split-link-header.js","sources":["../../src/node/split-link-header.ts"],"sourcesContent":[null],"names":["splitLinkHeader","header","links","angleDepth","isEscaped","isQuoted","start","index","length","char","push","slice","trim","Math","max","filter","Boolean"],"mappings":"AAGA,MAAMA,EAAmBC,IACvB,MAAMC,EAAkB,GACxB,IAAIC,EAAa,EACbC,GAAY,EACZC,GAAW,EACXC,EAAQ,EAEZ,IAAK,IAAIC,EAAQ,EAAGA,EAAQN,EAAOO,OAAQD,GAAS,EAAG,CACrD,MAAME,EAAOR,EAAOM,GAEhBH,EACFA,GAAY,EACM,OAATK,GAAiBJ,EAC1BD,GAAY,EACM,MAATK,EACTJ,GAAYA,EACFA,GAAqB,MAATI,EAEZJ,GAAqB,MAATI,EAEZJ,GAA2B,IAAfF,GAA6B,MAATM,IAC1CP,EAAMQ,KAAKT,EAAOU,MAAML,EAAOC,GAAOK,QACtCN,EAAQC,EAAQ,GAHhBJ,EAAaU,KAAKC,IAAI,EAAGX,EAAa,GAFtCA,GAAc,CAOlB,CAIA,OAFAD,EAAMQ,KAAKT,EAAOU,MAAML,GAAOM,QAExBV,EAAMa,OAAOC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TServerResponse } from
|
|
1
|
+
import type { TServerResponse } from './http.js';
|
|
2
2
|
/**
|
|
3
3
|
* Send Node early hints with distinct Link entries when the transport supports them.
|
|
4
4
|
*/
|
|
5
5
|
declare const writeEarlyHints: (res: TServerResponse, headers: Headers) => void;
|
|
6
|
-
export
|
|
6
|
+
export default writeEarlyHints;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-early-hints.js","sources":["../../src/node/write-early-hints.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"write-early-hints.js","sources":["../../src/node/write-early-hints.ts"],"sourcesContent":[null],"names":["writeEarlyHints","res","headers","headersSent","hints","Object","fromEntries","getHeaderEntries","link","get","splitLinkHeader","keys","length"],"mappings":"4FAOA,MAAMA,EAAkB,CAACC,EAAsBC,KAC7C,GAAID,EAAIE,aAA8C,mBAAxBF,EAAID,gBAChC,OAGF,MAAMI,EAA2CC,OAAOC,YAAYC,EAAiBL,IAC/EM,EAAON,EAAQO,IAAI,QAErBD,IACFJ,EAAMI,KAAOE,EAAgBF,IAG3BH,OAAOM,KAAKP,GAAOQ,QACrBX,EAAID,gBAAgBI"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TServerResponse } from
|
|
1
|
+
import type { TServerResponse } from './http.js';
|
|
2
2
|
/**
|
|
3
3
|
* Write Fetch status and headers while preserving existing transport cookies.
|
|
4
4
|
*/
|
|
@@ -7,4 +7,5 @@ declare const writeFetchHeaders: (res: TServerResponse, response: Response) => v
|
|
|
7
7
|
* Write the Fetch body with backpressure and cancel unread data on disconnect.
|
|
8
8
|
*/
|
|
9
9
|
declare const writeFetchResponse: (res: TServerResponse, response: Response) => Promise<void>;
|
|
10
|
-
export {
|
|
10
|
+
export { writeFetchHeaders };
|
|
11
|
+
export default writeFetchResponse;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getHeaderEntries as e,getSetCookieHeaders as r}from"../core/headers.js";const a="Set-Cookie",o=(o,d)=>{o.statusCode=d.status,e(d.headers).forEach((
|
|
1
|
+
import{getHeaderEntries as e,getSetCookieHeaders as r}from"../core/headers.js";const a="Set-Cookie",o=(o,d)=>{o.statusCode=d.status,e(d.headers).forEach(([e,r])=>o.setHeader(e,r));const t=r(d.headers);if("function"==typeof o.appendHeader)t.forEach(e=>o.appendHeader(a,e));else if(t.length){const e=o.getHeader(a),r=Array.isArray(e)?e:[String(e)];o.setHeader(a,e?[...r,...t]:t)}},d=e=>new Promise((r,a)=>{const o=()=>{e.off("close",d),e.off("drain",t),e.off("error",n)},d=()=>{o(),a(new Error("Response closed before drain."))},t=()=>{o(),r()},n=e=>{o(),a(e)};e.once("close",d),e.once("drain",t),e.once("error",n)}),t=async(e,r)=>{if(e.destroyed||e.writableEnded)return void await(r.body?.cancel());if(e.headersSent||o(e,r),!r.body||"HEAD"===e.req?.method||[204,205,304].includes(e.statusCode))return await(r.body?.cancel()),void e.end();const a=r.body.getReader(),t=()=>{e.writableEnded||a.cancel().catch(()=>{})};e.once("close",t);try{for(;;){const r=await a.read();if(r.done)break;if(e.destroyed||e.writableEnded)return void await a.cancel();e.write(r.value)||await d(e),e.flush?.()}e.destroyed||e.writableEnded||e.end()}catch(r){await a.cancel(r).catch(()=>{}),e.destroyed||e.destroy(r)}finally{e.off("close",t),a.releaseLock()}};export{t as default,o as writeFetchHeaders};
|
|
2
2
|
//# sourceMappingURL=write-fetch-response.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-fetch-response.js","sources":["../../src/node/write-fetch-response.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"write-fetch-response.js","sources":["../../src/node/write-fetch-response.ts"],"sourcesContent":[null],"names":["SET_COOKIE","writeFetchHeaders","res","response","statusCode","status","getHeaderEntries","headers","forEach","name","value","setHeader","cookies","getSetCookieHeaders","appendHeader","cookie","length","existing","getHeader","previousCookies","Array","isArray","String","waitForDrain","Promise","resolve","reject","cleanup","off","onClose","onDrain","onError","Error","error","once","writeFetchResponse","async","destroyed","writableEnded","body","cancel","headersSent","req","method","includes","end","reader","getReader","catch","chunk","read","done","write","flush","destroy","releaseLock"],"mappings":"+EAGA,MAAMA,EAAa,aAKbC,EAAoB,CAACC,EAAsBC,KAC/CD,EAAIE,WAAaD,EAASE,OAC1BC,EAAiBH,EAASI,SAASC,QAAQ,EAAEC,EAAMC,KAAWR,EAAIS,UAAUF,EAAMC,IAClF,MAAME,EAAUC,EAAoBV,EAASI,SAE7C,GAAgC,mBAArBL,EAAIY,aACbF,EAAQJ,QAASO,GAAWb,EAAIY,aAAad,EAAYe,SACpD,GAAIH,EAAQI,OAAQ,CAIzB,MAAMC,EAAWf,EAAIgB,UAAUlB,GACzBmB,EAAkBC,MAAMC,QAAQJ,GAAYA,EAAW,CAACK,OAAOL,IAErEf,EAAIS,UAAUX,EAAYiB,EAAW,IAAIE,KAAoBP,GAAWA,EAC1E,GAMIW,EAAgBrB,GACpB,IAAIsB,QAAQ,CAACC,EAASC,KAIpB,MAAMC,EAAU,KACdzB,EAAI0B,IAAI,QAASC,GACjB3B,EAAI0B,IAAI,QAASE,GACjB5B,EAAI0B,IAAI,QAASG,IAMbF,EAAU,KACdF,IACAD,EAAO,IAAIM,MAAM,mCAMbF,EAAU,KACdH,IACAF,KAMIM,EAAWE,IACfN,IACAD,EAAOO,IAGT/B,EAAIgC,KAAK,QAASL,GAClB3B,EAAIgC,KAAK,QAASJ,GAClB5B,EAAIgC,KAAK,QAASH,KAMhBI,EAAqBC,MAAOlC,EAAsBC,KACtD,GAAID,EAAImC,WAAanC,EAAIoC,cAGvB,kBAFMnC,EAASoC,MAAMC,UASvB,GAJKtC,EAAIuC,aACPxC,EAAkBC,EAAKC,IAGpBA,EAASoC,MAA4B,SAApBrC,EAAIwC,KAAKC,QAAqB,CAAC,IAAK,IAAK,KAAKC,SAAS1C,EAAIE,YAI/E,aAHMD,EAASoC,MAAMC,eACrBtC,EAAI2C,MAKN,MAAMC,EAAS3C,EAASoC,KAAKQ,YAKvBlB,EAAU,KACT3B,EAAIoC,eACFQ,EAAON,SAASQ,MAAM,SAI/B9C,EAAIgC,KAAK,QAASL,GAElB,IACE,OAAa,CACX,MAAMoB,QAAcH,EAAOI,OAE3B,GAAID,EAAME,KACR,MAGF,GAAIjD,EAAImC,WAAanC,EAAIoC,cAGvB,kBAFMQ,EAAON,SAKVtC,EAAIkD,MAAMH,EAAMvC,cACba,EAAarB,GAMpBA,EAAiDmD,SACpD,CAEKnD,EAAImC,WAAcnC,EAAIoC,eACzBpC,EAAI2C,KAER,CAAE,MAAOZ,SACDa,EAAON,OAAOP,GAAOe,MAAM,QAE5B9C,EAAImC,WACPnC,EAAIoD,QAAQrB,EAEhB,SACE/B,EAAI0B,IAAI,QAASC,GACjBiB,EAAOS,aACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lomray/vite-ssr-boost",
|
|
3
|
-
"version": "8.0.0-beta.
|
|
3
|
+
"version": "8.0.0-beta.2",
|
|
4
4
|
"description": "Vite plugin for create awesome SSR or SPA applications on React.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
"test:coverage": "vitest run --coverage"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"chalk": "^
|
|
61
|
-
"commander": "^
|
|
60
|
+
"chalk": "^6.0.0",
|
|
61
|
+
"commander": "^15.0.0",
|
|
62
62
|
"hoist-non-react-statics": "^3.3.2",
|
|
63
63
|
"json5": "^2.2.3"
|
|
64
64
|
},
|
|
@@ -67,51 +67,66 @@
|
|
|
67
67
|
"express": "^5.2.1"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@
|
|
71
|
-
"@
|
|
72
|
-
"@
|
|
73
|
-
"@
|
|
70
|
+
"@babel/generator": "^8.0.0",
|
|
71
|
+
"@babel/parser": "^8.0.4",
|
|
72
|
+
"@babel/traverse": "^8.0.4",
|
|
73
|
+
"@babel/types": "^8.0.4",
|
|
74
|
+
"@commitlint/cli": "^21.2.2",
|
|
75
|
+
"@commitlint/config-conventional": "^21.2.2",
|
|
76
|
+
"@lomray/eslint-config": "^7.0.0",
|
|
77
|
+
"@lomray/eslint-config-react": "^7.0.0",
|
|
78
|
+
"@lomray/prettier-config": "^3.0.0",
|
|
74
79
|
"@rollup/plugin-terser": "^1.0.0",
|
|
75
|
-
"@
|
|
80
|
+
"@rollup/plugin-typescript": "^12.3.0",
|
|
81
|
+
"@testing-library/react": "^16.3.3",
|
|
76
82
|
"@types/babel__generator": "^7.27.0",
|
|
77
83
|
"@types/babel__traverse": "^7.28.0",
|
|
78
84
|
"@types/compression": "^1.8.1",
|
|
85
|
+
"@types/express": "^5.0.6",
|
|
79
86
|
"@types/hoist-non-react-statics": "^3.3.7",
|
|
80
|
-
"@types/
|
|
81
|
-
"@types/
|
|
82
|
-
"@
|
|
83
|
-
"@
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
87
|
+
"@types/node": "^22.20.1",
|
|
88
|
+
"@types/react": "^19.2.18",
|
|
89
|
+
"@types/react-dom": "^19.2.7",
|
|
90
|
+
"@types/serve-static": "^2.2.0",
|
|
91
|
+
"@types/sinon": "^22.0.0",
|
|
92
|
+
"@vitest/coverage-v8": "^5.0.0",
|
|
93
|
+
"conventional-changelog-conventionalcommits": "^9.3.1",
|
|
94
|
+
"esbuild": "^0.28.2",
|
|
95
|
+
"eslint": "^10.10.0",
|
|
96
|
+
"fastify": "^5.12.3",
|
|
97
|
+
"globals": "^17.12.0",
|
|
98
|
+
"hono": "^4.13.7",
|
|
89
99
|
"husky": "^9.1.7",
|
|
90
|
-
"jsdom": "^
|
|
91
|
-
"lint-staged": "^
|
|
92
|
-
"miniflare": "^4.
|
|
93
|
-
"prettier": "^3.
|
|
94
|
-
"react
|
|
95
|
-
"
|
|
100
|
+
"jsdom": "^30.0.1",
|
|
101
|
+
"lint-staged": "^17.4.1",
|
|
102
|
+
"miniflare": "^4.20260730.0",
|
|
103
|
+
"prettier": "^3.9.6",
|
|
104
|
+
"react": "^19.2.8",
|
|
105
|
+
"react-dom": "^19.2.8",
|
|
106
|
+
"react-router": "^8.3.1",
|
|
107
|
+
"rollup": "^4.63.1",
|
|
96
108
|
"rollup-plugin-copy": "^3.5.0",
|
|
97
109
|
"rollup-plugin-folder-input": "^1.0.1",
|
|
98
110
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
99
111
|
"rollup-plugin-preserve-shebangs": "^0.2.0",
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"typescript": "^
|
|
104
|
-
"
|
|
112
|
+
"semantic-release": "^25.0.9",
|
|
113
|
+
"sinon": "^22.1.0",
|
|
114
|
+
"tsc-alias": "^1.9.4",
|
|
115
|
+
"typescript": "^6.0.3",
|
|
116
|
+
"typescript-eslint": "^8.69.0",
|
|
117
|
+
"vite": "^8.2.2",
|
|
105
118
|
"vitepress": "^1.6.4",
|
|
106
|
-
"vitest": "^
|
|
119
|
+
"vitest": "^5.0.0"
|
|
107
120
|
},
|
|
108
121
|
"peerDependencies": {
|
|
109
122
|
"@babel/generator": ">=7.23.0",
|
|
110
123
|
"@babel/parser": ">=7.23.0",
|
|
111
124
|
"@babel/traverse": ">=7.23.0",
|
|
125
|
+
"@babel/types": ">=7.23.0",
|
|
112
126
|
"@types/compression": ">=1.7.5",
|
|
113
127
|
"@types/express": ">=4.17.21",
|
|
114
128
|
"@types/serve-static": ">=1.15.5",
|
|
129
|
+
"react": ">=18.2.0",
|
|
115
130
|
"react-dom": ">=18.2.0",
|
|
116
131
|
"react-router": ">=7.0.1",
|
|
117
132
|
"vite": ">=5"
|
|
@@ -128,14 +143,19 @@
|
|
|
128
143
|
}
|
|
129
144
|
},
|
|
130
145
|
"overrides": {
|
|
131
|
-
"
|
|
132
|
-
"
|
|
146
|
+
"miniflare": {
|
|
147
|
+
"undici": "^7.29.0"
|
|
148
|
+
},
|
|
149
|
+
"vitepress": {
|
|
150
|
+
"vite": "^6.4.3",
|
|
151
|
+
"@docsearch/js": "^3.9.0",
|
|
152
|
+
"@docsearch/css": "^3.9.0"
|
|
133
153
|
}
|
|
134
154
|
},
|
|
135
155
|
"bin": {
|
|
136
156
|
"ssr-boost": "cli.js"
|
|
137
157
|
},
|
|
138
158
|
"engines": {
|
|
139
|
-
"node": ">=22.
|
|
159
|
+
"node": ">=22.12.0"
|
|
140
160
|
}
|
|
141
161
|
}
|
package/plugin.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Plugin } from 'vite';
|
|
2
|
-
import { ICliContext } from
|
|
3
|
-
import { IPluginOptions as ICreateSPAIndex } from
|
|
4
|
-
import { IPluginOptions as IMakeAliasesPluginOptions } from
|
|
5
|
-
import { IBuildEntrypoint } from
|
|
6
|
-
interface IPluginOptions {
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
import type { ICliContext } from './constants/cli-context.js';
|
|
3
|
+
import type { IPluginOptions as ICreateSPAIndex } from './plugins/create-spa-index.js';
|
|
4
|
+
import type { IPluginOptions as IMakeAliasesPluginOptions } from './plugins/make-aliases.js';
|
|
5
|
+
import type { IBuildEntrypoint } from './services/build.js';
|
|
6
|
+
export interface IPluginOptions {
|
|
7
7
|
indexFile?: string;
|
|
8
8
|
serverFile?: string;
|
|
9
9
|
clientFile?: string;
|
|
@@ -23,4 +23,4 @@ interface IPluginOptions {
|
|
|
23
23
|
* @constructor
|
|
24
24
|
*/
|
|
25
25
|
declare function ViteSsrBoostPlugin(options?: IPluginOptions): Plugin[];
|
|
26
|
-
export
|
|
26
|
+
export default ViteSsrBoostPlugin;
|
package/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["../src/plugin.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["../src/plugin.ts"],"sourcesContent":[null],"names":["defaultOptions","indexFile","serverFile","clientFile","tsconfigAliases","spaIndex","ViteSsrBoostPlugin","options","dirInfo","URL","url","action","global","viteBoostAction","process","env","SSR_BOOST_ACTION","mergedOptions","entrypointConfig","getCurrentEntrypoint","entrypoint","isSSR","SSR_BOOST_IS_SSR","CliActions","dev","isBuild","build","plugins","name","PLUGIN_NAME","enforce","pluginOptions","pluginPath","path","dirname","pathname","isDev","config","isSsrBuild","define","__IS_SSR__","type","appType","publicDir","manifest","routesPath","push","ViteMakeAliasesPlugin","undefined","ViteCreateSPAIndexPlugin","ViteHandleCustomEntrypointPlugin","ViteNormalizeRouterPlugin"],"mappings":"8XAyCA,MAAMA,EAAiC,CACrCC,UAAW,aACXC,WAAY,YACZC,WAAY,YACZC,iBAAiB,EACjBC,UAAU,GAOZ,SAASC,EAAmBC,EAA0B,IACpD,MAAMC,EAAU,IAAIC,gBAAgBC,KAC9BC,EAAUC,OAAOC,iBAAmBC,EAAQC,IAAIC,iBAChDC,EAAgC,IAAKjB,KAAmBO,GACxDW,EAAmBC,EAAqBF,EAAcG,YAAc,IACpEC,EAAyC,MAAjCP,EAAQC,IAAIO,kBAA4BX,IAAWY,EAAWC,IACtEC,EAAUd,IAAWY,EAAWG,MAEhCC,EAAoB,CACxB,CACEC,KAAMC,EACNC,QAAS,MAETC,cAAe,IACVd,EACHe,WAAYC,EAAKC,QAAQ1B,EAAQ2B,UACjCxB,SACAyB,MAAOzB,IAAWY,EAAWC,KAG/Ba,OAAM,CAACA,GAAQC,WAAEA,MACfD,EAAOE,OAAS,IACVF,EAAOE,QAAU,GACrBC,WAAYtB,EAA6C,QAA1BA,EAAiBuB,KAAiBpB,GAGnEgB,EAAOX,MAAQ,IACTW,EAAOX,OAAS,IAGjBY,EAQE,IACFD,KACCZ,EAAU,CAAEiB,QAAS,UAAa,CAAA,EACtCC,WAAW,IAVPtB,GAASI,IACXY,EAAOX,MAAMkB,UAAW,GAGnBP,OAYTjC,gBAAEA,EAAeyC,WAAEA,EAAUxC,SAAEA,GAAaY,EAkBlD,OAhBIb,GACFuB,EAAQmB,KACNC,EAAiD,kBAApB3C,OAAgC4C,EAAY5C,IAIzEC,GACFsB,EAAQmB,KAAKG,EAA6C,kBAAb5C,OAAyB2C,EAAY3C,IAGhFa,GACFS,EAAQmB,KAAKI,EAAiC,CAAE9B,WAAYF,KAG9DS,EAAQmB,KAAKK,EAA0B,CAAE9B,QAAOI,UAASoB,gBAElDlB,CACT"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Plugin } from 'vite';
|
|
2
|
-
interface IPluginOptions {
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
export interface IPluginOptions {
|
|
3
3
|
filename?: string;
|
|
4
4
|
rootId?: string;
|
|
5
5
|
}
|
|
@@ -11,4 +11,4 @@ interface IPluginOptions {
|
|
|
11
11
|
* @constructor
|
|
12
12
|
*/
|
|
13
13
|
declare function ViteCreateSPAIndexPlugin(options?: IPluginOptions): Plugin;
|
|
14
|
-
export
|
|
14
|
+
export default ViteCreateSPAIndexPlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-spa-index.js","sources":["../../src/plugins/create-spa-index.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"create-spa-index.js","sources":["../../src/plugins/create-spa-index.ts"],"sourcesContent":[null],"names":["pluginName","PLUGIN_NAME","ViteCreateSPAIndexPlugin","options","filename","rootId","spaHtml","name","enforce","apply","_","command","isSsrBuild","getCurrentEntrypointName","transformIndexHtml","html","replace","generateBundle","this","emitFile","type","fileName","source"],"mappings":"oHASA,MAAMA,EAAa,GAAGC,0BAStB,SAASC,EAAyBC,EAA0B,IAC1D,MAAMC,SAAEA,EAAW,iBAAgBC,OAAEA,EAAS,QAAWF,EACzD,IAAIG,EAAU,GAEd,MAAO,CACLC,KAAMP,EACNQ,QAAS,OAITC,MAAK,CAACC,GAAGC,QAAEA,EAAOC,WAAEA,KACC,UAAZD,IAAwBC,IAAeC,IAEhDC,mBAAmBC,IACjBT,EAAUS,EAAKC,QAAQ,OAAOX,KAAW,OAAOA,yBAEzCU,GAET,cAAAE,GACOX,GAILY,KAAKC,SAAS,CACZC,KAAM,QACNC,SAAUjB,EACVkB,OAAQhB,GAEZ,EAEJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Plugin } from 'vite';
|
|
2
|
-
import { IBuildEntrypoint } from
|
|
3
|
-
interface IPluginOptions {
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
import type { IBuildEntrypoint } from '../services/build.js';
|
|
3
|
+
export interface IPluginOptions {
|
|
4
4
|
entrypoint: IBuildEntrypoint;
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
@@ -22,4 +22,4 @@ declare const getCurrentEntrypoint: (entrypoint: IBuildEntrypoint[], currentEntr
|
|
|
22
22
|
* @constructor
|
|
23
23
|
*/
|
|
24
24
|
declare function ViteHandleCustomEntrypointPlugin(options: IPluginOptions): Plugin;
|
|
25
|
-
export {
|
|
25
|
+
export { ViteHandleCustomEntrypointPlugin, getCurrentEntrypoint, getCurrentEntrypointName, setCurrentEntrypointName, };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"node:fs";import n from"node:path";import
|
|
1
|
+
import e from"node:fs";import n from"node:path";import r from"node:process";import o from"../constants/plugin-name.js";const t=`${o}-handle-custom-entrypoint`,i=()=>r.env.SSR_BOOST_CUSTOM_ENTRYPOINT_BUILD_NAME,l=e=>{r.env.SSR_BOOST_CUSTOM_ENTRYPOINT_BUILD_NAME=e},s=(e,n=i())=>{if(!e.length||!n)return null;for(const r of e)if(r.name===n&&!r.serverFile)return r;return null},c=(e,n,r)=>{const o=n.replace("./","/"),t=r.replace("./","/");return e.replace(o,t)};function m(r){const{entrypoint:i}=r;let l="",s="";return{name:t,enforce:"pre",apply:(e,{isSsrBuild:n})=>!n&&Boolean(i),config(e){const{indexFile:r}=i,o=e.build??{},t=r?n.resolve(e.root??"",r):void 0;return{...e,build:{...o,rollupOptions:{...o.rollupOptions??{},input:t}}}},configResolved(e){const r=e.plugins.find(e=>e.name===o);l=n.resolve(e.root,e.build.outDir),s=r.pluginOptions.clientFile},transform(e,n){if(n.endsWith(".html")){const{clientFile:n}=i;if(n)return{code:c(e,s,n),map:JSON.stringify(this.getCombinedSourcemap())}}return{code:e,map:JSON.stringify(this.getCombinedSourcemap())}},transformIndexHtml(e,{originalUrl:n,server:r}){const{clientFile:o}=i;return o&&"serve"===r?.config.command&&n?.endsWith(".html")?c(e,s,o):e},closeBundle(){const{indexFile:r}=i;if(!r)return;const o=n.resolve(l,n.basename(r));e.existsSync(o)&&e.renameSync(o,n.resolve(l,"index.html"))}}}export{m as ViteHandleCustomEntrypointPlugin,s as getCurrentEntrypoint,i as getCurrentEntrypointName,l as setCurrentEntrypointName};
|
|
2
2
|
//# sourceMappingURL=handle-custom-entrypoint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-custom-entrypoint.js","sources":["../../src/plugins/handle-custom-entrypoint.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"handle-custom-entrypoint.js","sources":["../../src/plugins/handle-custom-entrypoint.ts"],"sourcesContent":[null],"names":["pluginName","PLUGIN_NAME","getCurrentEntrypointName","process","env","SSR_BOOST_CUSTOM_ENTRYPOINT_BUILD_NAME","setCurrentEntrypointName","name","getCurrentEntrypoint","entrypoint","currentEntrypointName","length","entry","serverFile","replaceEntrypoint","code","originalPath","endpointPath","cleanOrigPath","replace","cleanEndpointPath","ViteHandleCustomEntrypointPlugin","options","outPath","origClientFile","enforce","apply","_","isSsrBuild","Boolean","config","indexFile","buildConfig","build","indexFilePath","path","resolve","root","undefined","rollupOptions","input","configResolved","pluginConfig","plugins","find","plugin","outDir","pluginOptions","clientFile","transform","id","endsWith","map","JSON","stringify","this","getCombinedSourcemap","transformIndexHtml","html","originalUrl","server","command","closeBundle","basename","fs","existsSync","renameSync"],"mappings":"uHAWA,MAAMA,EAAa,GAAGC,6BAKhBC,EAA2B,IAC/BC,EAAQC,IAAIC,uCAKRC,EAA4BC,IAChCJ,EAAQC,IAAIC,uCAAyCE,GAMjDC,EAAuB,CAC3BC,EACAC,EAAwBR,OAExB,IAAKO,EAAWE,SAAWD,EACzB,OAAO,KAGT,IAAK,MAAME,KAASH,EAClB,GAAIG,EAAML,OAASG,IAA0BE,EAAMC,WACjD,OAAOD,EAIX,OAAO,MAMHE,EAAoB,CAACC,EAAcC,EAAsBC,KAC7D,MAAMC,EAAgBF,EAAaG,QAAQ,KAAM,KAC3CC,EAAoBH,EAAaE,QAAQ,KAAM,KAErD,OAAOJ,EAAKI,QAAQD,EAAeE,IASrC,SAASC,EAAiCC,GACxC,MAAMb,WAAEA,GAAea,EACvB,IAAIC,EAAU,GACVC,EAAiB,GAErB,MAAO,CACLjB,KAAMP,EACNyB,QAAS,MAITC,MAAK,CAACC,GAAGC,WAAEA,MACDA,GAAcC,QAAQpB,GAEhC,MAAAqB,CAAOA,GACL,MAAMC,UAAEA,GAActB,EAChBuB,EAAcF,EAAOG,OAAS,CAAA,EAC9BC,EAAgBH,EAAYI,EAAKC,QAAQN,EAAOO,MAAQ,GAAIN,QAAaO,EAE/E,MAAO,IACFR,EACHG,MAAO,IACFD,EACHO,cAAe,IACTP,EAAYO,eAAiB,GACjCC,MAAON,IAIf,EACA,cAAAO,CAAeX,GACb,MAAMY,EAAeZ,EAAOa,QAAQC,KAAMC,GAAWA,EAAOtC,OAASN,GAErEsB,EAAUY,EAAKC,QAAQN,EAAOO,KAAMP,EAAOG,MAAMa,QAEjDtB,EAAkBkB,EAAaK,cAAsCC,UACvE,EACA,SAAAC,CAAUlC,EAAMmC,GACd,GAAIA,EAAGC,SAAS,SAAU,CACxB,MAAMH,WAAEA,GAAevC,EAEvB,GAAIuC,EACF,MAAO,CACLjC,KAAMD,EAAkBC,EAAMS,EAAgBwB,GAC9CI,IAAKC,KAAKC,UAAUC,KAAKC,wBAG/B,CAEA,MAAO,CACLzC,OACAqC,IAAKC,KAAKC,UAAUC,KAAKC,wBAE7B,EAIA,kBAAAC,CAAmBC,GAAMC,YAAEA,EAAWC,OAAEA,IACtC,MAAMZ,WAAEA,GAAevC,EAEvB,OAAIuC,GAAyC,UAA3BY,GAAQ9B,OAAO+B,SAAuBF,GAAaR,SAAS,SACrErC,EAAkB4C,EAAMlC,EAAgBwB,GAG1CU,CACT,EACA,WAAAI,GACE,MAAM/B,UAAEA,GAActB,EAEtB,IAAKsB,EACH,OAGF,MAAMG,EAAgBC,EAAKC,QAAQb,EAASY,EAAK4B,SAAShC,IAEtDiC,EAAGC,WAAW/B,IAChB8B,EAAGE,WAAWhC,EAAeC,EAAKC,QAAQb,EAAS,cAEvD,EAEJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Plugin } from 'vite';
|
|
2
|
-
interface IPluginOptions {
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
export interface IPluginOptions {
|
|
3
3
|
root?: string;
|
|
4
4
|
tsconfig?: string;
|
|
5
5
|
}
|
|
@@ -9,4 +9,4 @@ interface IPluginOptions {
|
|
|
9
9
|
* @constructor
|
|
10
10
|
*/
|
|
11
11
|
declare function ViteMakeAliasesPlugin(options?: IPluginOptions): Plugin;
|
|
12
|
-
export
|
|
12
|
+
export default ViteMakeAliasesPlugin;
|
package/plugins/make-aliases.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"node:fs";import o from"node:path";import s from"node:process";import r from"json5";import t from"../constants/plugin-name.js";import n from"../helpers/vite-aliases.js";const i=`${t}-make-aliases`,a=e=>e.replace(/\/?\*$/,"");function c(t={}){const{root:c,tsconfig:p}=t,f=c??s.cwd(),m=o.resolve(f,p??"tsconfig.json"),l=[];if(e.existsSync(m)){const o=r.parse(e.readFileSync(m,{encoding:"utf-8"})),s=o?.compilerOptions?.paths??{};Object.entries(s).forEach((
|
|
1
|
+
import e from"node:fs";import o from"node:path";import s from"node:process";import r from"json5";import t from"../constants/plugin-name.js";import n from"../helpers/vite-aliases.js";const i=`${t}-make-aliases`,a=e=>e.replace(/\/?\*$/,"");function c(t={}){const{root:c,tsconfig:p}=t,f=c??s.cwd(),m=o.resolve(f,p??"tsconfig.json"),l=[];if(e.existsSync(m)){const o=r.parse(e.readFileSync(m,{encoding:"utf-8"})),s=o?.compilerOptions?.paths??{};Object.entries(s).forEach(([e,o])=>{l.push([a(e),a(o[0])])})}else console.error(`${i}: tsconfig not exist in "${m}"`);return{name:i,config(e){if(l.length){const o=e.resolve??{},s=o.alias??[],r=Array.isArray(s)?s:Object.entries(s).map(([e,o])=>({find:e,replacement:o}));r.push(...n(l,`${f}/${e?.root??""}`)),e.resolve={...o,alias:r}}return e}}}export{c as default};
|
|
2
2
|
//# sourceMappingURL=make-aliases.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-aliases.js","sources":["../../src/plugins/make-aliases.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"make-aliases.js","sources":["../../src/plugins/make-aliases.ts"],"sourcesContent":[null],"names":["pluginName","PLUGIN_NAME","cleanupAlias","str","replace","ViteMakeAliasesPlugin","options","root","tsconfig","projectRoot","process","cwd","tsconfigPath","path","resolve","aliases","fs","existsSync","tsJson","JSON5","parse","readFileSync","encoding","paths","compilerOptions","Object","entries","forEach","alias","aliasPaths","push","console","error","name","config","length","resolveConfig","defaultAliases","normalizedAliases","Array","isArray","map","find","val","replacement","ViteAliases"],"mappings":"sLAcA,MAAMA,EAAa,GAAGC,iBAChBC,EAAgBC,GAAwBA,EAAIC,QAAQ,SAAU,IAOpE,SAASC,EAAsBC,EAA0B,IACvD,MAAMC,KAAEA,EAAIC,SAAEA,GAAaF,EACrBG,EAAcF,GAAQG,EAAQC,MAC9BC,EAAeC,EAAKC,QAAQL,EAAaD,GAAY,iBACrDO,EAA8B,GAEpC,GAAKC,EAAGC,WAAWL,GAEZ,CACL,MAAMM,EAASC,EAAMC,MACnBJ,EAAGK,aAAaT,EAAc,CAAEU,SAAU,WAEtCC,EAAQL,GAAQM,iBAAiBD,OAAS,CAAA,EAEhDE,OAAOC,QAAQH,GAAOI,QAAQ,EAAEC,EAAOC,MACrCd,EAAQe,KAAK,CAAC5B,EAAa0B,GAAQ1B,EAAa2B,EAAW,OAE/D,MAVEE,QAAQC,MAAM,GAAGhC,6BAAsCY,MAYzD,MAAO,CACLqB,KAAMjC,EACN,MAAAkC,CAAOA,GACL,GAAInB,EAAQoB,OAAQ,CAClB,MAAMC,EAAgBF,EAAOpB,SAAW,CAAA,EAClCuB,EAAiBD,EAAcR,OAAS,GACxCU,EAAoBC,MAAMC,QAAQH,GACpCA,EACAZ,OAAOC,QAAQW,GAAgBI,IAAI,EAAEC,EAAMC,MAAI,CAC7CD,OACAE,YAAaD,KAGnBL,EAAkBR,QAAQe,EAAY9B,EAAS,GAAGN,KAAeyB,GAAQ3B,MAAQ,OAEjF2B,EAAOpB,QAAU,IACZsB,EACHR,MAAOU,EAEX,CAEA,OAAOJ,CACT,EAEJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Plugin } from 'vite';
|
|
2
|
-
interface IPluginOptions {
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
export interface IPluginOptions {
|
|
3
3
|
isSSR?: boolean;
|
|
4
4
|
isBuild?: boolean;
|
|
5
5
|
routesPath?: string;
|
|
@@ -13,4 +13,4 @@ interface IPluginOptions {
|
|
|
13
13
|
* @constructor
|
|
14
14
|
*/
|
|
15
15
|
declare function ViteNormalizeRouterPlugin(options?: IPluginOptions): Plugin;
|
|
16
|
-
export
|
|
16
|
+
export default ViteNormalizeRouterPlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-route.js","sources":["../../src/plugins/normalize-route.ts"],"sourcesContent":[
|
|
1
|
+
{"version":3,"file":"normalize-route.js","sources":["../../src/plugins/normalize-route.ts"],"sourcesContent":[null],"names":["ViteNormalizeRouterPlugin","options","routesPath","isSSR","isBuild","name","PLUGIN_NAME","enforce","transform","code","id","extName","extname","split","isRoutesPath","includes","isRoutesFile","ParseRoutes","handleRoutes","map","mappings"],"mappings":"qKAoBA,SAASA,EAA0BC,EAA0B,IAC3D,MAAMC,WAAEA,EAAUC,MAAEA,GAAQ,EAAKC,QAAEA,GAAU,GAAUH,EAEvD,MAAO,CACLI,KAAM,GAAGC,oBACTC,QAAS,MACT,SAAAC,CAAUC,EAAMC,GACd,MAAOC,GAAWC,EAAQF,GAAIG,MAAM,KAC9BC,GAAgBZ,GAAcQ,EAAGK,SAASb,GAEhD,IACEQ,EAAGK,SAAS,iBACX,CAAC,MAAO,OAAQ,MAAO,QAAQA,SAASJ,IACxCG,GACAE,EAAaP,GAKhB,MAAO,CACLA,KAAMQ,EAAYC,aAChBT,EAEAN,IAAUC,GAEZe,IAAK,CAAEC,SAAU,IAErB,EAEJ"}
|
package/services/build.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import childProcess from 'node:child_process';
|
|
3
|
-
import { ResolvedConfig } from 'vite';
|
|
4
|
-
import { IPluginConfig } from
|
|
5
|
-
interface IBuildParams {
|
|
2
|
+
import type { ResolvedConfig } from 'vite';
|
|
3
|
+
import type { IPluginConfig } from '../helpers/plugin-config.js';
|
|
4
|
+
export interface IBuildParams {
|
|
6
5
|
mode: string;
|
|
7
6
|
onFinish?: () => void;
|
|
8
7
|
clientOptions?: string;
|
|
@@ -23,7 +22,7 @@ interface ISpawnBuildParams {
|
|
|
23
22
|
focusOnly?: IBuildParams['focusOnly'];
|
|
24
23
|
env?: Record<string, string>;
|
|
25
24
|
}
|
|
26
|
-
interface IBuildEntrypoint {
|
|
25
|
+
export interface IBuildEntrypoint {
|
|
27
26
|
name: string;
|
|
28
27
|
type: 'spa' | 'ssr';
|
|
29
28
|
indexFile?: string;
|
|
@@ -74,110 +73,65 @@ declare class Build {
|
|
|
74
73
|
* Listener for preview has attached
|
|
75
74
|
*/
|
|
76
75
|
protected hasPreviewModeExitListener: boolean;
|
|
77
|
-
/**
|
|
78
|
-
* @constructor
|
|
79
|
-
*/
|
|
80
76
|
/**
|
|
81
77
|
* @constructor
|
|
82
78
|
*/
|
|
83
79
|
constructor(params: IBuildParams);
|
|
84
|
-
/**
|
|
85
|
-
* Make config
|
|
86
|
-
*/
|
|
87
80
|
/**
|
|
88
81
|
* Make config
|
|
89
82
|
*/
|
|
90
83
|
protected makeConfig(): Promise<void>;
|
|
91
|
-
/**
|
|
92
|
-
* Clear build folder
|
|
93
|
-
*/
|
|
94
84
|
/**
|
|
95
85
|
* Clear build folder
|
|
96
86
|
*/
|
|
97
87
|
clearBuildFolder(): void;
|
|
98
|
-
/**
|
|
99
|
-
* Return is prod indicator value
|
|
100
|
-
*/
|
|
101
88
|
/**
|
|
102
89
|
* Return is prod indicator value
|
|
103
90
|
*/
|
|
104
91
|
getIsProd(): boolean;
|
|
105
|
-
/**
|
|
106
|
-
* Return node env value
|
|
107
|
-
*/
|
|
108
92
|
/**
|
|
109
93
|
* Return node env value
|
|
110
94
|
*/
|
|
111
95
|
getNodeEnv(): string;
|
|
112
|
-
/**
|
|
113
|
-
* Return build names
|
|
114
|
-
*/
|
|
115
96
|
/**
|
|
116
97
|
* Return build names
|
|
117
98
|
*/
|
|
118
99
|
getRunningBuildNames(): string[];
|
|
119
|
-
/**
|
|
120
|
-
* Promisify spawn process
|
|
121
|
-
*/
|
|
122
100
|
/**
|
|
123
101
|
* Promisify spawn process
|
|
124
102
|
*/
|
|
125
103
|
protected promisifyProcess(command: childProcess.ChildProcess, isRejectWarnings?: boolean): IBuildProcess;
|
|
126
|
-
/**
|
|
127
|
-
* Build assets manifest file
|
|
128
|
-
*/
|
|
129
104
|
/**
|
|
130
105
|
* Build assets manifest file
|
|
131
106
|
*/
|
|
132
107
|
protected buildManifest(): void;
|
|
133
|
-
/**
|
|
134
|
-
* Change general directive Disallow to Allow in robots.txt.
|
|
135
|
-
*/
|
|
136
108
|
/**
|
|
137
109
|
* Change general directive Disallow to Allow in robots.txt.
|
|
138
110
|
*/
|
|
139
111
|
protected unlockRobots(): void;
|
|
140
|
-
/**
|
|
141
|
-
* Eject cli to run app via node
|
|
142
|
-
*/
|
|
143
112
|
/**
|
|
144
113
|
* Eject cli to run app via node
|
|
145
114
|
*/
|
|
146
115
|
protected eject(): void;
|
|
147
|
-
/**
|
|
148
|
-
* Create serverless entrypoint
|
|
149
|
-
*/
|
|
150
116
|
/**
|
|
151
117
|
* Create serverless entrypoint
|
|
152
118
|
*/
|
|
153
119
|
protected createServerless(): void;
|
|
154
|
-
/**
|
|
155
|
-
* Build specified entrypoint
|
|
156
|
-
*/
|
|
157
120
|
/**
|
|
158
121
|
* Build specified entrypoint
|
|
159
122
|
*/
|
|
160
123
|
protected spawnBuild(name: string, buildOptions: string, params?: ISpawnBuildParams): Promise<void>;
|
|
161
|
-
/**
|
|
162
|
-
* Wait latest build and stop process in case error
|
|
163
|
-
*/
|
|
164
124
|
/**
|
|
165
125
|
* Wait latest build and stop process in case error
|
|
166
126
|
*/
|
|
167
127
|
protected waitLastBuild(): Promise<void>;
|
|
168
|
-
/**
|
|
169
|
-
* Run preview mode
|
|
170
|
-
*/
|
|
171
128
|
/**
|
|
172
129
|
* Run preview mode
|
|
173
130
|
*/
|
|
174
131
|
protected runPreviewMode(): void;
|
|
175
|
-
/**
|
|
176
|
-
* Run app build
|
|
177
|
-
*/
|
|
178
132
|
/**
|
|
179
133
|
* Run app build
|
|
180
134
|
*/
|
|
181
135
|
build(): Promise<void>;
|
|
182
136
|
}
|
|
183
|
-
export
|
|
137
|
+
export default Build;
|
package/services/build.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import i from"node:child_process";import s from"node:fs";import t from"node:path";import e from"chalk";import{resolveConfig as o}from"vite";import r from"../cli/helpers/vite-reset-cache.js";import n from"../helpers/create-focus-only.js";import{createDevMarker as l}from"../helpers/dev-marker.js";import a from"../helpers/plugin-config.js";import u from"../helpers/process-stop.js";import c from"./server-config.js";import d from"./ssr-manifest.js";class h{isProd;nodeEnv;buildDir;viteConfig;pluginConfig;params={mode:"",clientOptions:"",serverOptions:"",focusOnly:"app",isWatch:!1,isUnlockRobots:!1,isEject:!1,isServerless:!1,isNoWarnings:!1};abortController=null;runningBuild=[];hasPreviewModeExitListener=!1;constructor(i){this.params={...this.params,...i}}async makeConfig(){const{mode:i}=this.params;this.viteConfig=await o({},"build",i,"production"),this.pluginConfig=a(this.viteConfig),this.buildDir=t.resolve(this.viteConfig.root,this.viteConfig.build.outDir),this.nodeEnv=process.env.NODE_ENV||"production",this.isProd="production"===this.nodeEnv}clearBuildFolder(){s.existsSync(this.buildDir)&&s.rmSync(this.buildDir,{recursive:!0})}getIsProd(){return this.isProd}getNodeEnv(){return this.nodeEnv}getRunningBuildNames(){return this.runningBuild.map((
|
|
1
|
+
import i from"node:child_process";import s from"node:fs";import t from"node:path";import e from"chalk";import{resolveConfig as o}from"vite";import r from"../cli/helpers/vite-reset-cache.js";import n from"../helpers/create-focus-only.js";import{createDevMarker as l}from"../helpers/dev-marker.js";import a from"../helpers/plugin-config.js";import u from"../helpers/process-stop.js";import c from"./server-config.js";import d from"./ssr-manifest.js";class h{isProd;nodeEnv;buildDir;viteConfig;pluginConfig;params={mode:"",clientOptions:"",serverOptions:"",focusOnly:"app",isWatch:!1,isUnlockRobots:!1,isEject:!1,isServerless:!1,isNoWarnings:!1};abortController=null;runningBuild=[];hasPreviewModeExitListener=!1;constructor(i){this.params={...this.params,...i}}async makeConfig(){const{mode:i}=this.params;this.viteConfig=await o({},"build",i,"production"),this.pluginConfig=a(this.viteConfig),this.buildDir=t.resolve(this.viteConfig.root,this.viteConfig.build.outDir),this.nodeEnv=process.env.NODE_ENV||"production",this.isProd="production"===this.nodeEnv}clearBuildFolder(){s.existsSync(this.buildDir)&&s.rmSync(this.buildDir,{recursive:!0})}getIsProd(){return this.isProd}getNodeEnv(){return this.nodeEnv}getRunningBuildNames(){return this.runningBuild.map(({name:i})=>i)}promisifyProcess(i,s=!1){const t=new Promise((t,e)=>{i.on("exit",i=>{t(i)}),i.on("close",i=>{t(i)}),i.on("error",i=>{e(i)}),s&&i.stderr?.on("data",i=>{const s=Buffer.from(i).toString();(s.includes("warning")||s.includes("WARNING"))&&t(1)})});return i.stdout?.pipe(process.stdout),i.stderr?.pipe(process.stderr),{promise:t,command:i}}buildManifest(){console.info(e.blue("Building routes manifest file"));const i=c.init({isProd:this.isProd,mode:this.params.mode},{root:this.viteConfig.root,clientFile:this.pluginConfig.clientFile});d.get(i,{buildDir:this.viteConfig.build.outDir,viteAliases:this.viteConfig.resolve.alias,basename:this.viteConfig.base,renderBuiltUrl:this.viteConfig?.experimental?.renderBuiltUrl}).buildRoutesManifest()}unlockRobots(){const i=`${this.buildDir}/client/robots.txt`;if(!s.existsSync(i))return void console.warn(`Failed to unlock robots.txt, file not exist: ${i}`);const t=s.readFileSync(i,{encoding:"utf-8"}).replace(/Disallow: \/$/m,"Allow: /");s.writeFileSync(i,t,{encoding:"utf-8"}),console.info(e.blue("\nrobots.txt unlocked."))}eject(){const i=`${this.buildDir}/server/start.js`;s.writeFileSync(i,"import runProd from '@lomray/vite-ssr-boost/cli/run-prod.js';\n\nconst VERSION = process.env.VERSION || \"1.0.0\";\nconst PORT = process.env.PORT || 3000;\nconst IS_HOST = process.env.IS_HOST || \"0\";\nconst ONLY_CLIENT = process.env.ONLY_CLIENT || \"0\";\n\nawait runProd({\n version: VERSION,\n isHost: IS_HOST === '1',\n isPrintInfo: true,\n port: PORT,\n onlyClient: ONLY_CLIENT === '1',\n });\n",{encoding:"utf-8"})}createServerless(){const i=`${this.buildDir}/server/serverless.js`;s.writeFileSync(i,"import runServerless from '@lomray/vite-ssr-boost/cli/run-serverless.js';\n\nexport default await runServerless({ version: process.env.VERSION || \"1.0.0\" });\n",{encoding:"utf-8"})}async spawnBuild(s,t,e={}){const{mode:o,isNoWarnings:r}=this.params,{focusOnly:l=this.params.focusOnly,shouldWait:a=!1,env:u={}}=e,c=o&&!t.includes("--mode")?`--mode ${o}`:"",d=this.promisifyProcess(i.spawn(`vite build ${t} ${c} --emptyOutDir`,{signal:this.abortController.signal,stdio:[process.stdin,"pipe","pipe"],shell:!0,env:{...process.env,...u,FORCE_COLOR:"2",SSR_BOOST_IS_SSR:n(l).isOnlyClient()?"0":"1",SSR_BOOST_ACTION:global.viteBoostAction}}),r);this.runningBuild.push({name:s,buildProcess:d}),a&&await this.waitLastBuild()}async waitLastBuild(){const i=this.runningBuild.at(-1);if(!i)return;const s=await i.buildProcess.promise;u(s,!0)}runPreviewMode(){this.hasPreviewModeExitListener||(process.on("exit",()=>{this.abortController.abort()}),this.hasPreviewModeExitListener=!0);const{onFinish:i}=this.params;let s=this.runningBuild.length;const t=e=>{Buffer.from(e).toString().includes("built in")&&(s-=1,s||(this.runningBuild.forEach(({buildProcess:i})=>{i.command.stdout?.removeListener("data",t)}),l(this.isProd,this.viteConfig),i?.()))};this.runningBuild.forEach(({buildProcess:i})=>{i.command.stdout?.on("data",t)})}async build(){await this.makeConfig(),await r(),this.clearBuildFolder();const{clientOptions:i,serverOptions:s,onFinish:t,isWatch:e,focusOnly:o,isEject:a,isServerless:u,isUnlockRobots:c}=this.params,{outDir:d}=this.viteConfig.build,h=n(o);this.abortController=new AbortController,this.runningBuild=[],h.isClient()&&await this.spawnBuild("client",`${i} --outDir ${d}/client`,{shouldWait:!e}),h.isServer()&&(await this.spawnBuild("server",`${s} --outDir ${d}/server --ssr ${this.pluginConfig.serverFile}`,{shouldWait:!e}),e||(this.buildManifest(),a&&this.eject(),u&&this.createServerless()));const{entrypoint:p}=this.pluginConfig;if(p?.length&&h.isEntrypoint())for(const{name:i,type:s,serverFile:t,buildOptions:o=""}of p){const r=t&&"ssr"===s?`--ssr ${t}`:"";await this.spawnBuild(i,`${o} ${r} --outDir ${d}/${i}`,{shouldWait:!e,focusOnly:"ssr"===s?"server":"client",env:{SSR_BOOST_CUSTOM_ENTRYPOINT_BUILD_NAME:i}})}e?this.runPreviewMode():(c&&this.unlockRobots(),l(this.isProd,this.viteConfig),t?.())}}export{h as default};
|
|
2
2
|
//# sourceMappingURL=build.js.map
|