@reckona/mreact-router 0.0.209 → 0.0.211

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/adapters/cloudflare.d.ts.map +1 -1
  2. package/dist/adapters/cloudflare.js +17 -5
  3. package/dist/adapters/cloudflare.js.map +1 -1
  4. package/dist/build.d.ts.map +1 -1
  5. package/dist/build.js +43 -3
  6. package/dist/build.js.map +1 -1
  7. package/dist/built-runtime.d.ts +1 -0
  8. package/dist/built-runtime.d.ts.map +1 -1
  9. package/dist/built-runtime.js +4 -0
  10. package/dist/built-runtime.js.map +1 -1
  11. package/dist/client-manifest-assets.d.ts +2 -0
  12. package/dist/client-manifest-assets.d.ts.map +1 -1
  13. package/dist/client-manifest-assets.js +2 -1
  14. package/dist/client-manifest-assets.js.map +1 -1
  15. package/dist/client.d.ts +1 -0
  16. package/dist/client.d.ts.map +1 -1
  17. package/dist/client.js +367 -93
  18. package/dist/client.js.map +1 -1
  19. package/dist/module-preload-graph.d.ts +5 -0
  20. package/dist/module-preload-graph.d.ts.map +1 -0
  21. package/dist/module-preload-graph.js +48 -0
  22. package/dist/module-preload-graph.js.map +1 -0
  23. package/dist/reactive-devtools-stub.d.ts +3 -0
  24. package/dist/reactive-devtools-stub.d.ts.map +1 -0
  25. package/dist/reactive-devtools-stub.js +10 -0
  26. package/dist/reactive-devtools-stub.js.map +1 -0
  27. package/dist/render.d.ts +1 -0
  28. package/dist/render.d.ts.map +1 -1
  29. package/dist/render.js +47 -10
  30. package/dist/render.js.map +1 -1
  31. package/dist/serve.js +1 -0
  32. package/dist/serve.js.map +1 -1
  33. package/dist/vite.d.ts.map +1 -1
  34. package/dist/vite.js +2 -7
  35. package/dist/vite.js.map +1 -1
  36. package/package.json +11 -11
  37. package/src/adapters/cloudflare.ts +22 -5
  38. package/src/build.ts +50 -3
  39. package/src/built-runtime.ts +18 -6
  40. package/src/client-manifest-assets.ts +3 -1
  41. package/src/client.ts +367 -92
  42. package/src/module-preload-graph.ts +70 -0
  43. package/src/reactive-devtools-stub.ts +9 -0
  44. package/src/render.ts +74 -10
  45. package/src/serve.ts +1 -0
  46. package/src/vite.ts +2 -7
package/dist/serve.js CHANGED
@@ -533,6 +533,7 @@ function builtRenderAppRequestOptions(options) {
533
533
  appDir: options.runtime.appDir,
534
534
  assetBaseUrl: options.runtime.assetBaseUrl,
535
535
  clientScripts: options.runtime.clientScripts,
536
+ clientScriptPreloads: options.runtime.clientScriptPreloads,
536
537
  clientStylesByFile: options.runtime.clientStylesByFile,
537
538
  clientStyles: options.runtime.clientStyles,
538
539
  dehydrateOptions: options.dehydrateOptions,
package/dist/serve.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EACL,wBAAwB,EACxB,iCAAiC,EACjC,mCAAmC,EACnC,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,yBAAyB,GAE1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,8BAA8B,EAC9B,wCAAwC,GACzC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAoC,MAAM,aAAa,CAAC;AAG/D,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,4BAA4B,EAC5B,0BAA0B,GAK3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GAExB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAwB,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,2BAA2B,EAC3B,gCAAgC,EAChC,+BAA+B,EAC/B,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,sBAAsB,CAAC;AAS9B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAC;AACpE,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAiC,CAAC;AAC1E,IAAI,mCAAmC,GAAG,CAAC,CAAC;AAqB5C,IAAI,uBAAuB,GAAG,KAAK,CAAC;AA6GpC,MAAM,UAAU,kBAAkB,CAAC,OAKlC;IACC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAC5B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC,YAAY,CAAC;IACjE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;IACtE,CAAC;IACD,OAAO,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAGvC;IACC,IACE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;QACrC,OAAO,CAAC,YAAY,KAAK,SAAS;QAClC,OAAO,CAAC,UAAU,KAAK,SAAS;QAChC,uBAAuB,EACvB,CAAC;QACD,OAAO;IACT,CAAC;IAED,uBAAuB,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,KAAK,CACX,+QAA+Q,CAChR,CAAC;AACJ,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAmC;IAEnC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC;QACrC,SAAS,EAAE,OAAO,CAAC,gBAAgB;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzF,OAAO;QACL,OAAO,CAAC,OAAO;YACb,OAAO,iCAAiC,CAAC;gBACvC,YAAY,EAAE,mBAAmB;gBACjC,OAAO;gBACP,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,EAAE;YACtC,qBAAqB,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,MAAM,gCAAgC,CAAC;gBACtD,GAAG,aAAa;gBAChB,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB;gBAC5E,eAAe,EAAE,kCAAkC,CAAC,aAAa,CAAC,eAAe,CAAC;gBAClF,YAAY,EACV,aAAa,CAAC,YAAY,KAAK,SAAS;oBACtC,CAAC,CAAC,mBAAmB;oBACrB,CAAC,CAAC,6BAA6B,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC;gBACxE,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO;gBACP,OAAO;aACR,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,yBAAyB,CACnD,QAAQ,EACR;gBACE,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,OAAO;aACR,EACD,OAAO,CACR,CAAC;YACF,mBAAmB,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;YAClF,OAAO,aAAa,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAK5C;IACC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC;QACrC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,MAAM,iCAAiC,CAAC;QACtC,YAAY,EAAE,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC;QAC1E,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iCAAiC,CAAC,OAIhD;IACC,MAAM,IAAI,GAAG,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,MAAM,8BAA8B,CAClC,OAAO,CAAC,OAAO,EACf,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,EAC1C,KAAK,CACN,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,wCAAwC,CAC5C,OAAO,CAAC,OAAO,EACf,SAAS,EACT,IAAI,CAAC,mBAAmB,CACzB,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,wCAAwC,CAC5C,OAAO,CAAC,OAAO,EACf,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,cAAc,CACpB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,0BAA0B,CAAC;QAC/B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;QAC9B,YAAY,EAAE;YACZ,GAAG,OAAO,CAAC,YAAY;YACvB,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB;YACpD,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;SACzC;QACD,MAAM;QACN,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;QAC5C,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,wBAAwB;QAClE,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB;QACpD,4BAA4B,EAAE,OAAO,CAAC,OAAO,CAAC,4BAA4B;QAC1E,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;KAChD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB,CAChC,OAAqB,EACrB,QAAwC;IAExC,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC/D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;IACrC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;QAC1E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAqC;IAErC,qBAAqB,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC;QACrC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,gBAAgB;QACnC,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,gCAAgC,CAAC;QACtD,GAAG,OAAO;QACV,eAAe,EAAE,kCAAkC,CAAC,OAAO,CAAC,eAAe,CAAC;QAC5E,YAAY,EAAE,6BAA6B,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC;QAC1E,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClF,mBAAmB,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACpF,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,kCAAkC,CACzC,eAAkD;IAElD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,EACJ,YAAY,EAAE,aAAa,EAC3B,cAAc,EAAE,eAAe,EAC/B,GAAG,SAAS,EACb,GAAG,eAAe,CAAC;IACpB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,qBAAqB,CAC5B,eAAkD,EAClD,OAAgB;IAEhB,MAAM,KAAK,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC/C,2BAA2B,CAAC,eAAe,EAAE,cAAc,EAAE;QAC3D,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;QACnC,OAAO;QACP,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAC1B,eAAkD,EAClD,OAAgB,EAChB,MAAc;IAEd,MAAM,KAAK,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC/C,2BAA2B,CAAC,eAAe,EAAE,YAAY,EAAE;QACzD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;QACnC,OAAO;QACP,MAAM;QACN,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,OAAiE;IAEjE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAE3E,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,oBAAoB,CACzB,OAAO,CAAC,MAAM,EACd,mBAAmB,EACnB,OAAO,CAAC,OAAO,CAAC,gBAAgB,CACjC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1E,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE7E,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9B,IAAI,cAAc,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEjE,2EAA2E;IAC3E,wEAAwE;IACxE,2EAA2E;IAC3E,oCAAoC;IACpC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;QAC9F,qEAAqE;QACrE,kEAAkE;QAClE,iEAAiE;QACjE,MAAM,WAAW,GACf,OAAO,CAAC,cAAc,KAAK,SAAS;YAClC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC;YACvD,CAAC,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1F,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE3E,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,mBAAmB,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,+BAA+B,CAAC,MAAM,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;IACvF,4BAA4B,CAAC,MAAM,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAC1E,IAAI,gBAAgB,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACzC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClF,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;IACD,IAAI,gBAAgB,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QACzC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;QACnC,cAAc,GAAG,kBAAkB,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QACnE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/D,CAAC;IAED,mEAAmE;IACnE,uEAAuE;IACvE,oDAAoD;IACpD,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;QAC7F,MAAM,WAAW,GACf,OAAO,CAAC,cAAc,KAAK,SAAS;YAClC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC;YACvD,CAAC,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAC1F,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE3E,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC5E,OAAO,mBAAmB,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QACxF,MAAM,wCAAwC,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE;YACnF,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,OAAO,+BAA+B,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,wCAAwC,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE;QACnF,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC;QAChD,GAAG,OAAO;QACV,YAAY,EAAE,OAAO;QACrB,OAAO;QACP,UAAU,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;KACjC,CAAC,CAAC;IAEH,MAAM,gCAAgC,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAE1F,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpG,CAAC;AAED,SAAS,wBAAwB,CAC/B,WAA8C,EAC9C,OAAgB;IAEhB,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,GAAG,CAAC;IACtE,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,kCAAkC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;IAC7F,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACxB,OAAO,EAAE,+BAA+B,CAAC,WAAW,EAAE,OAAO,CAAC;YAC9D,MAAM,EAAE,WAAW,CAAC,MAAM;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,EAAE;QACxB,OAAO,EAAE,+BAA+B,CAAC,WAAW,EAAE,OAAO,CAAC;QAC9D,MAAM,EAAE,WAAW,CAAC,MAAM;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,OAGC,EACD,OAAgB;IAEhB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,wCAAwC,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE3E,OAAO,0BAA0B,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;QAC9B,YAAY,EAAE;YACZ,GAAG,OAAO,CAAC,YAAY;YACvB,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB;YACpD,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;SACzC;QACD,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,OAAO;QACP,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;QAC5C,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,wBAAwB;QAClE,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB;QACpD,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAmC;IAEnC,OAAO,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,+BAA+B,CACtC,MAAsD;IAEtD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,4BAA4B,CACnC,MAAsD,EACtD,SAA6B,EAC7B,SAAiB;IAEjB,IAAI,MAAM,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO;IACT,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAqC,EACrC,OAAgB,EAChB,MAAsD,EACtD,MAAc;IAEd,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;QACrC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM;QACN,IAAI,EAAE,sBAAsB;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,QAAkB,EAClB,OAAqE,EACrE,OAAqB;IAErB,MAAM,8BAA8B,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,4BAA4B,CAAC;QACpD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,qBAAqB;QAC3C,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;QAC1D,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE;QAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,OAAO,2BAA2B,CAAC,MAAM,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrF,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,QAAkB;IAC3D,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,wEAAwE;IACxE,gEAAgE;IAChE,sEAAsE;IACtE,wEAAwE;IACxE,oCAAoC;IACpC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3D,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;KAChC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC;QAC9C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,MAAM,sBAAsB,CAAC;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,kBAAkB;QAC/B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;QACpD,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;QAC1D,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAClB,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;YACtB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;SACtF,CAAC;KACL,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAElE,MAAM,UAAU,+BAA+B;IAC7C,iBAAiB,CAAC,KAAK,EAAE,CAAC;IAC1B,wBAAwB,CAAC,KAAK,EAAE,CAAC;IACjC,mCAAmC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,wCAAwC;IACtD,OAAO,mCAAmC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,mCAAmC;IACjD,iCAAiC,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,qCAAqC;IACnD,OAAO,mCAAmC,EAAE,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAI/B;IACC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,GAAG,MAAM,KAAK,UAAU,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,wBAAwB,CAAC;YACvC,QAAQ;YACR,MAAM;YACN,MAAM;YACN,UAAU;SACX,CAAC,CAAC;QACH,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,KAAK,OAAO;aACT,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,OAAO,EAAE,CAAC;gBACvD,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACnB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,wBAAwB,CAAC;QAC9B,QAAQ;QACR,MAAM;QACN,MAAM;QACN,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,OAKvC;IACC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IACnE,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IACtE,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnF,6BAA6B,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;QAC9E,6BAA6B,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;QAC9E,yBAAyB,CAAC,MAAM,CAAC;KAClC,CAAC,CAAC;IAEH,IACE,MAAM,KAAK,SAAS;QACpB,MAAM,CAAC,kBAAkB,KAAK,kBAAkB;QAChD,MAAM,CAAC,kBAAkB,KAAK,kBAAkB;QAChD,MAAM,CAAC,gBAAgB,KAAK,gBAAgB,EAC5C,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,MAAM,OAAO,GAAG,uBAAuB,CAAC;QACtC,kBAAkB;QAClB,kBAAkB;QAClB,gBAAgB;QAChB,gBAAgB;QAChB,aAAa;YACX,mCAAmC,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM;QACN,UAAU;QACV,kBAAkB;QAClB,kBAAkB;KACnB,CAAC,CAAC;IAEH,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE;QAC9B,kBAAkB;QAClB,gBAAgB;QAChB,OAAO;QACP,kBAAkB;KACnB,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;QACjB,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC;YACzD,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACd,KAA4B,CAAC,IAAI,KAAK,QAAQ,CAChD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,6BAA6B,CAAC,SAAiB,EAAE,KAAa;IAC3E,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa,EAAE,YAAoB,EAAE,KAAc;IACjF,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACxE,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1F,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,KAAK,KAAK,YAAY,GAAG,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,OAAqB,EACrB,IAAY,EACZ,KAA0C;IAE1C,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5C,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,0BAA0B,CACjC,OAKC;IAED,OAAO,gBAAgB,CAAC;QACtB,GAAG,4BAA4B,CAAC,OAAO,CAAC;QACxC,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;KACzF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,4BAA4B,CACnC,OAIC;IAED,MAAM,0BAA0B,GAAwC;QACtE,KAAK,CAAC,IAAI,CAAC,SAAiB;YAC1B,MAAM,wCAAwC,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE;gBACzE,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;IACF,MAAM,aAAa,GAAmC;QACpD,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;QAC9B,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY;QAC1C,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;QAC5C,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,kBAAkB;QACtD,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY;QAC1C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,YAAY,EAAE;YACZ,GAAG,OAAO,CAAC,YAAY;YACvB,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB;YACpD,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;SACzC;QACD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB;QACpD,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY;QAC1C,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;QAC9B,0BAA0B;QAC1B,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;QAC5C,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC,wBAAwB;QAClE,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB;QACpD,4BAA4B,EAAE,OAAO,CAAC,OAAO,CAAC,4BAA4B;QAC1E,aAAa,EAAE,6BAA6B,CAC1C,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,OAAO,CAAC,oBAAoB,CACrC;QACD,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS;QAC3B,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;KACvE,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,6BAA6B,CACpC,OAAiD,EACjD,cAEa;IAEb,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,cAAc;KACf,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,OAAiE,EACjE,IAAY;IAEZ,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5F,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE7D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;QAC9B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,CAAC,MAAM,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClE,CAAC;IAED,MAAM,IAAI,GAAG,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAElD,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,OAAiE,EACjE,IAAY;IAEZ,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5F,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACzF,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEzE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO;gBACL,QAAQ,EAAE,cAAc;gBACxB,SAAS,EAAE,IAAI;aAChB,CAAC;QACJ,CAAC;QAED,uEAAuE;QACvE,yEAAyE;QACzE,4EAA4E;QAC5E,yEAAyE;QACzE,MAAM,aAAa,GAAG;YACpB,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI;YAC3B,uBAAuB,EAAE,GAAG,EAAE,CAAC,SAA+B;SAC/D,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;QAEjF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;QAED,sEAAsE;QACtE,+CAA+C;QAC/C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,aAAa,CAAC,eAAe,EAAE,IAAI,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5E,OAAO;gBACL,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE;oBAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACxB,CAAC;gBACF,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,GAAG,CAAC;QAC9E,IAAI,UAAU,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO;gBACL,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE;oBAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACxB,CAAC;gBACF,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,MAAM,gCAAgC,CAC9C,OAAO,CAAC,OAAO,EACf,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,aAAa,CAAC,uBAAuB,EAAE,EACvC,OAAO,CAAC,cAAc,EACtB,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAChC;YACD,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,OAAO,CAAC,cAAc,EAAE,QAAQ,KAAK,SAAS;QACnD,CAAC,CAAC,MAAM,UAAU,EAAE;QACpB,CAAC,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,OAAqB,EACrB,QAAkB,EAClB,KAA0C;IAE1C,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEhE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,OAAqB,EACrB,IAAY,EACZ,IAAY,EACZ,QAAkB,EAClB,uBAA2C,EAC3C,KAA0C,EAC1C,QAA4C;IAE5C,MAAM,OAAO,GAAG,6BAA6B,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,KAAK,GACT,QAAQ,KAAK,SAAS;QACpB,CAAC,CAAC;YACE,OAAO;YACP,IAAI,EAAE,IAAI;YACV,aAAa,EAAE,gCAAgC;YAC/C,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,CAAC,uBAAuB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,CAAC;SAC9E;QACH,CAAC,CAAC,8BAA8B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,YAAY,CAAC,IAAI,EAAE;YACxB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE9B,OAAO,YAAY,CAAC,IAAI,EAAE;QACxB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAkB;IAC7C,OAAO,YAAY,CAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;QACjD,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { Server } from \"node:http\";\nimport type { DehydrateOptions } from \"@reckona/mreact-query\";\nimport { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport type { BuiltPrerenderedRoute } from \"./build.js\";\nimport type { AppRouterCache } from \"./cache.js\";\nimport {\n builtClientAssetPathname,\n clearBuiltPublicAssetCacheForTest,\n getBuiltPublicAssetCacheSizeForTest,\n readBuiltClientAsset,\n readBuiltPublicAsset,\n} from \"./built-assets.js\";\nimport {\n materializeBuiltRuntime,\n mergeBuiltRuntimeImportPolicy,\n readBuiltImportPolicyText,\n type BuiltRuntime,\n} from \"./built-runtime.js\";\nimport {\n allBuiltServerModuleFiles,\n loadBuiltResponseHookArtifacts,\n loadBuiltServerModuleArtifacts,\n loadBuiltServerModuleArtifactsForRequest,\n} from \"./built-server-module-artifacts.js\";\nimport { type AppRoute, type MatchedRoute } from \"./routes.js\";\nimport type { AppRouterServerActionOptions } from \"./actions.js\";\nimport type { AppRouterImportPolicy } from \"./import-policy.js\";\nimport {\n preloadBuiltRequestModules,\n renderAppRequest,\n resolveAppRouterResponseHook,\n resolveAppRouterMiddleware,\n type AppRouterServerRenderArtifactLoader,\n type AppRouterRenderPreload,\n type AppRouterResponseHook,\n type RenderAppRequestRuntimeOptions,\n} from \"./render.js\";\nimport {\n invokeRouterInstrumentation,\n traceContextFromRequest,\n type RouterInstrumentation,\n} from \"./trace.js\";\nimport { bytesResponse, htmlResponse } from \"./http.js\";\nimport { emitRouterLog, logDurationMs, logNow, type AppRouterLogger } from \"./logger.js\";\nimport { startNodeRequestServer } from \"./node-server.js\";\nimport { builtAppRuntimePreloadPlan } from \"./preload-policy.js\";\nimport { normalizeRoutePath } from \"./route-path.js\";\nimport type { HttpUpgradeOriginPolicy, ManagedHttpUpgradeHandler } from \"./upgrade.js\";\nimport {\n isCurrentPrerenderedRoute,\n isVisitorDependentResponse,\n mergePrerenderedNavigationHtml,\n protectNonceBearingResponse,\n PRERENDERED_ROUTE_SCHEMA_VERSION,\n replayedPrerenderedRouteHeaders,\n storedPrerenderedRouteHeaders,\n validatedPrerenderedNavigationHtml,\n} from \"./prerender-entry.js\";\n\ninterface BuiltRuntimeCacheEntry {\n clientManifestText: string;\n importPolicyText: string | undefined;\n runtime: Promise<BuiltRuntime>;\n serverManifestText: string;\n}\n\nconst builtRuntimeCache = new Map<string, BuiltRuntimeCacheEntry>();\nconst builtRuntimeReadInflight = new Map<string, Promise<BuiltRuntime>>();\nlet builtRuntimeMaterializeCountForTest = 0;\n\n/**\n * Strategy for the final response body shape sent to the HTTP layer.\n *\n * - `\"string\"` (default, cross-runtime): body is the raw HTML string. The\n * underlying runtime encodes to UTF-8 bytes when writing to the socket.\n * - `\"buffer\"` (Node only): materialize the response body into a Buffer\n * before returning. Skips the implicit encode at the Response → socket\n * boundary and can let Node's HTTP layer write bytes directly.\n *\n * The buffer path forces full materialization of streaming responses\n * (loses TTFB streaming) — only opt in if the throughput gain outweighs\n * that on your workload.\n */\nexport type ResponseSinkStrategy = \"string\" | \"buffer\";\n/**\n * Controls whether built request handling trusts the incoming Host header.\n */\nexport type RequestHostPolicy = \"strict\" | \"trusted-proxy\";\n\nlet warnedImplicitHostTrust = false;\n\n/**\n * Configures rendering a request against a built app-router output directory.\n */\nexport interface RenderBuiltAppRequestOptions {\n dehydrateOptions?: DehydrateOptions | undefined;\n outDir: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n logger?: AppRouterLogger | undefined;\n onResponse?: AppRouterResponseHook | undefined;\n prerenderStore?: AppRouterPrerenderStore | undefined;\n request: Request;\n routeCache?: AppRouterCache | undefined;\n runtimeDir?: string | undefined;\n immutableRuntime?: boolean | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n sinkStrategy?: ResponseSinkStrategy;\n preload?: AppRouterRenderPreload | undefined;\n}\n\nexport interface BuiltRequestRuntimeOptions {\n immutableRuntime?: boolean | undefined;\n importPolicy?: AppRouterImportPolicy | undefined;\n outDir: string;\n runtimeDir?: string | undefined;\n}\n\nexport type BuiltRequestRuntimeRenderOptions = Omit<\n RenderBuiltAppRequestOptions,\n \"immutableRuntime\" | \"outDir\" | \"request\" | \"runtimeDir\"\n>;\n\nexport interface BuiltRequestRuntime {\n preload(preload?: BuiltAppRuntimePreloadStrategy | undefined): Promise<void>;\n render(\n request: Request,\n options?: BuiltRequestRuntimeRenderOptions | undefined,\n ): Promise<Response>;\n}\n\n/**\n * Selects which built runtime modules should be preloaded.\n */\nexport type BuiltAppRuntimePreloadMode =\n | \"all\"\n | \"hot-route-requests\"\n | \"hot-routes\"\n | \"middleware\"\n | \"none\";\n\n/**\n * Configures built app runtime preload scope and optional hot routes.\n */\nexport interface BuiltAppRuntimePreloadStrategy {\n mode: BuiltAppRuntimePreloadMode;\n routes?: readonly string[] | undefined;\n}\n\n/**\n * Configures the Node HTTP server used to serve a built app-router output.\n */\nexport interface StartServerOptions {\n dehydrateOptions?: DehydrateOptions | undefined;\n outDir: string;\n port: number;\n hostname?: string;\n // Optional hook for customizing the 500 response. The default returns\n // a generic \"Internal Server Error\" body and logs the stack to stderr\n // via console.error. Issue 071: stack traces must never end up in\n // production responses.\n errorHandler?: (error: unknown) => {\n body: string;\n status: number;\n headers?: Record<string, string>;\n };\n // When set, an incoming Host header that does not exactly match one of\n // the listed values is replaced with the configured hostname/port for\n // origin reconstruction. Use this in front of public deployments to\n // block Host header injection (Issue 068). Undefined preserves the\n // legacy \"trust Host\" behavior for backward compatibility when\n // hostPolicy is not configured.\n allowedHosts?: readonly string[] | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n importPolicy?: AppRouterImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n logger?: AppRouterLogger | undefined;\n onResponse?: AppRouterResponseHook | undefined;\n prerenderStore?: AppRouterPrerenderStore | undefined;\n routeCache?: AppRouterCache | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n sinkStrategy?: ResponseSinkStrategy;\n onUpgrade?: ManagedHttpUpgradeHandler | undefined;\n /** Maximum time to wait for application-owned upgrade sockets during shutdown. */\n upgradeCloseTimeoutMs?: number | undefined;\n /** Maximum time an asynchronous upgrade handler may leave ownership undecided. */\n upgradeDecisionTimeoutMs?: number | undefined;\n /** Origin policy for application HTTP upgrades. Defaults to exact same-origin validation. */\n upgradeOriginPolicy?: HttpUpgradeOriginPolicy | undefined;\n /**\n * Trusts the first `X-Forwarded-Proto` value when the socket is not TLS.\n *\n * Defaults to `false`. Enable only behind a proxy that overwrites the header\n * and prevents untrusted clients from reaching the Node listener directly.\n */\n trustForwardedProto?: boolean | undefined;\n}\n\nexport function resolveRequestHost(options: {\n allowedHosts?: readonly string[] | undefined;\n fallbackHost: string;\n hostPolicy?: RequestHostPolicy | undefined;\n rawHost: string | undefined;\n}): string {\n const raw = options.rawHost;\n if (raw === undefined || raw === \"\") return options.fallbackHost;\n if (options.allowedHosts === undefined) {\n return options.hostPolicy === \"strict\" ? options.fallbackHost : raw;\n }\n return options.allowedHosts.includes(raw) ? raw : options.fallbackHost;\n}\n\nexport function warnIfImplicitHostTrust(options: {\n allowedHosts?: readonly string[] | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n}): void {\n if (\n process.env.NODE_ENV !== \"production\" ||\n options.allowedHosts !== undefined ||\n options.hostPolicy !== undefined ||\n warnedImplicitHostTrust\n ) {\n return;\n }\n\n warnedImplicitHostTrust = true;\n console.error(\n '[mreact] Host header trust is implicit because neither allowedHosts nor hostPolicy is configured. Set allowedHosts for public deployments, hostPolicy: \"strict\" to reject unlisted Host headers, or hostPolicy: \"trusted-proxy\" when a trusted reverse proxy normalizes Host.',\n );\n}\n\n/**\n * Defines storage for prerendered route responses used by built request rendering.\n */\nexport interface AppRouterPrerenderStore {\n delete(path: string): void | Promise<void>;\n get(path: string): BuiltPrerenderedRoute | undefined | Promise<BuiltPrerenderedRoute | undefined>;\n set(path: string, entry: BuiltPrerenderedRoute): void | Promise<void>;\n withLock?<T>(path: string, task: () => Promise<T>): Promise<T>;\n}\n\nexport async function createBuiltRequestRuntime(\n options: BuiltRequestRuntimeOptions,\n): Promise<BuiltRequestRuntime> {\n const runtime = await readBuiltRuntime({\n immutable: options.immutableRuntime,\n outDir: options.outDir,\n runtimeDir: options.runtimeDir,\n });\n const defaultImportPolicy = mergeBuiltRuntimeImportPolicy(runtime, options.importPolicy);\n\n return {\n preload(preload) {\n return preloadBuiltAppRuntimeWithRuntime({\n importPolicy: defaultImportPolicy,\n preload,\n runtime,\n });\n },\n async render(request, renderOptions = {}) {\n emitBuiltRequestStart(renderOptions.instrumentation, request);\n const response = await renderBuiltAppRequestWithRuntime({\n ...renderOptions,\n dehydrateOptions: renderOptions.dehydrateOptions ?? runtime.dehydrateOptions,\n instrumentation: withoutBuiltRequestInstrumentation(renderOptions.instrumentation),\n importPolicy:\n renderOptions.importPolicy === undefined\n ? defaultImportPolicy\n : mergeBuiltRuntimeImportPolicy(runtime, renderOptions.importPolicy),\n outDir: options.outDir,\n request,\n runtime,\n });\n\n const finalResponse = await applyBuiltAppResponseHook(\n response,\n {\n onResponse: renderOptions.onResponse,\n request,\n },\n runtime,\n );\n emitBuiltRequestEnd(renderOptions.instrumentation, request, finalResponse.status);\n return finalResponse;\n },\n };\n}\n\n/**\n * Preloads selected modules from a built app-router runtime.\n */\nexport async function preloadBuiltAppRuntime(options: {\n importPolicy?: AppRouterImportPolicy | undefined;\n outDir: string;\n preload?: BuiltAppRuntimePreloadStrategy | undefined;\n runtimeDir?: string | undefined;\n}): Promise<void> {\n const runtime = await readBuiltRuntime({\n outDir: options.outDir,\n runtimeDir: options.runtimeDir,\n });\n await preloadBuiltAppRuntimeWithRuntime({\n importPolicy: mergeBuiltRuntimeImportPolicy(runtime, options.importPolicy),\n preload: options.preload,\n runtime,\n });\n}\n\nasync function preloadBuiltAppRuntimeWithRuntime(options: {\n importPolicy?: AppRouterImportPolicy | undefined;\n preload?: BuiltAppRuntimePreloadStrategy | undefined;\n runtime: BuiltRuntime;\n}): Promise<void> {\n const plan = builtAppRuntimePreloadPlan(options.preload);\n\n if (!plan.shouldPreload) {\n return;\n }\n\n const routes = builtRuntimePreloadRoutes(options.runtime, plan);\n if (plan.loadAllArtifacts) {\n await loadBuiltServerModuleArtifacts(\n options.runtime,\n allBuiltServerModuleFiles(options.runtime),\n \"all\",\n );\n } else {\n await loadBuiltServerModuleArtifactsForRequest(\n options.runtime,\n undefined,\n plan.middlewareArtifacts,\n );\n for (const route of routes) {\n await loadBuiltServerModuleArtifactsForRequest(\n options.runtime,\n route.file,\n plan.routeArtifacts,\n );\n }\n }\n await preloadBuiltRequestModules({\n appDir: options.runtime.appDir,\n importPolicy: {\n ...options.importPolicy,\n allowedSourceDirs: options.runtime.allowedSourceDirs,\n projectRoot: options.runtime.projectRoot,\n },\n routes,\n serverModules: options.runtime.serverModules,\n serverModuleCacheVersion: options.runtime.serverModuleCacheVersion,\n serverSourceFiles: options.runtime.serverSourceFiles,\n serverActionReferencesByFile: options.runtime.serverActionReferencesByFile,\n includeRenderModules: plan.includeRenderModules,\n });\n}\n\nfunction builtRuntimePreloadRoutes(\n runtime: BuiltRuntime,\n strategy: BuiltAppRuntimePreloadStrategy,\n): readonly AppRoute[] {\n if (strategy.mode === \"all\") {\n return runtime.routes;\n }\n\n if (strategy.mode === \"middleware\" || strategy.mode === \"none\") {\n return [];\n }\n\n const routes = strategy.routes ?? [];\n return routes.map((path) => {\n const route = runtime.routeMatcher.match(normalizeRoutePath(path))?.route;\n if (route === undefined) {\n throw new Error(`Unknown hot route preload path: ${path}`);\n }\n return route;\n });\n}\n\n/**\n * Renders a request using a built app-router output directory.\n */\nexport async function renderBuiltAppRequest(\n options: RenderBuiltAppRequestOptions,\n): Promise<Response> {\n emitBuiltRequestStart(options.instrumentation, options.request);\n const runtime = await readBuiltRuntime({\n outDir: options.outDir,\n immutable: options.immutableRuntime,\n runtimeDir: options.runtimeDir,\n });\n const response = await renderBuiltAppRequestWithRuntime({\n ...options,\n instrumentation: withoutBuiltRequestInstrumentation(options.instrumentation),\n importPolicy: mergeBuiltRuntimeImportPolicy(runtime, options.importPolicy),\n runtime,\n });\n\n const finalResponse = await applyBuiltAppResponseHook(response, options, runtime);\n emitBuiltRequestEnd(options.instrumentation, options.request, finalResponse.status);\n return finalResponse;\n}\n\nfunction withoutBuiltRequestInstrumentation(\n instrumentation: RouterInstrumentation | undefined,\n): RouterInstrumentation | undefined {\n if (instrumentation === undefined) {\n return undefined;\n }\n\n const {\n onRequestEnd: _onRequestEnd,\n onRequestStart: _onRequestStart,\n ...remaining\n } = instrumentation;\n return remaining;\n}\n\nfunction emitBuiltRequestStart(\n instrumentation: RouterInstrumentation | undefined,\n request: Request,\n): void {\n const trace = traceContextFromRequest(request);\n invokeRouterInstrumentation(instrumentation?.onRequestStart, {\n method: request.method,\n path: new URL(request.url).pathname,\n request,\n ...(trace === undefined ? {} : { trace }),\n });\n}\n\nfunction emitBuiltRequestEnd(\n instrumentation: RouterInstrumentation | undefined,\n request: Request,\n status: number,\n): void {\n const trace = traceContextFromRequest(request);\n invokeRouterInstrumentation(instrumentation?.onRequestEnd, {\n method: request.method,\n path: new URL(request.url).pathname,\n request,\n status,\n ...(trace === undefined ? {} : { trace }),\n });\n}\n\nasync function renderBuiltAppRequestWithRuntime(\n options: RenderBuiltAppRequestOptions & { runtime: BuiltRuntime },\n): Promise<Response> {\n const url = new URL(options.request.url);\n const timing = createBuiltRenderTiming(options.logger);\n\n const clientAssetPathname = builtClientAssetPathname(options.request, url);\n\n if (clientAssetPathname !== undefined) {\n return readBuiltClientAsset(\n options.outDir,\n clientAssetPathname,\n options.runtime.clientAssetPaths,\n );\n }\n\n if (options.request.method === \"GET\" || options.request.method === \"HEAD\") {\n const publicAsset = await readBuiltPublicAsset(options.outDir, url.pathname);\n\n if (publicAsset !== undefined) {\n return publicAsset;\n }\n }\n\n let request = options.request;\n let normalizedPath = normalizeRoutePath(url.pathname);\n let matched = options.runtime.routeMatcher.match(normalizedPath);\n\n // Prerendered HTML may only be served ahead of middleware when the app has\n // no middleware at all. Otherwise a middleware that gates access (auth,\n // geo blocking, maintenance mode) would be bypassed for exactly the routes\n // it is most often used to protect.\n if (!options.runtime.hasMiddleware && (request.method === \"GET\" || request.method === \"HEAD\")) {\n // Sync fast path when no external prerender store is configured (the\n // common case): skip the Promise wrap that `readPrerenderedRoute`\n // would otherwise introduce just to satisfy the async signature.\n const prerendered =\n options.prerenderStore === undefined\n ? options.runtime.prerenderedRoutes.get(normalizedPath)\n : await readPrerenderedRoute(options.runtime, normalizedPath, options.prerenderStore);\n const prerenderedResponse = prerenderedRouteResponse(prerendered, request);\n\n if (prerenderedResponse !== undefined) {\n return prerenderedResponse;\n }\n }\n\n const middlewareStartedAt = builtRenderTimingPhaseStartedAt(timing);\n const middlewareResult = await resolveBuiltMiddleware({ ...options, timing }, request);\n finishBuiltRenderTimingPhase(timing, middlewareStartedAt, \"middlewareMs\");\n if (middlewareResult.type === \"response\") {\n emitBuiltRenderTiming(options, request, timing, middlewareResult.response.status);\n return middlewareResult.response;\n }\n if (middlewareResult.request !== request) {\n request = middlewareResult.request;\n normalizedPath = normalizeRoutePath(new URL(request.url).pathname);\n matched = options.runtime.routeMatcher.match(normalizedPath);\n }\n\n // Middleware apps resolve prerendered HTML here instead, so that a\n // middleware response or rewrite is honoured before the stored HTML is\n // served. The lookup uses the post-middleware path.\n if (options.runtime.hasMiddleware && (request.method === \"GET\" || request.method === \"HEAD\")) {\n const prerendered =\n options.prerenderStore === undefined\n ? options.runtime.prerenderedRoutes.get(normalizedPath)\n : await readPrerenderedRoute(options.runtime, normalizedPath, options.prerenderStore);\n const prerenderedResponse = prerenderedRouteResponse(prerendered, request);\n\n if (prerenderedResponse !== undefined) {\n emitBuiltRenderTiming(options, request, timing, prerenderedResponse.status);\n return prerenderedResponse;\n }\n }\n\n if (request.method === \"GET\" && options.runtime.prerenderableRoutes.has(normalizedPath)) {\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, matched?.route.file, {\n includeRender: false,\n });\n return renderAndCachePrerenderWithLock({ ...options, request }, normalizedPath);\n }\n\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, matched?.route.file, {\n includeRender: false,\n });\n const response = await renderBuiltDynamicResponse({\n ...options,\n matchedRoute: matched,\n request,\n requestUrl: new URL(request.url),\n });\n\n await applyBuiltPrerenderInvalidations(options.runtime, response, options.prerenderStore);\n\n return options.sinkStrategy === \"buffer\" ? await materializeResponseAsBuffer(response) : response;\n}\n\nfunction prerenderedRouteResponse(\n prerendered: BuiltPrerenderedRoute | undefined,\n request: Request,\n): Response | undefined {\n if (!isCurrentPrerenderedRoute(prerendered)) {\n return undefined;\n }\n\n const navigation = request.headers.get(\"x-mreact-navigation\") === \"1\";\n const html = navigation ? validatedPrerenderedNavigationHtml(prerendered) : prerendered.html;\n if (html === undefined) {\n return undefined;\n }\n\n if (request.method === \"HEAD\") {\n return new Response(null, {\n headers: replayedPrerenderedRouteHeaders(prerendered, request),\n status: prerendered.status,\n });\n }\n\n return htmlResponse(html, {\n headers: replayedPrerenderedRouteHeaders(prerendered, request),\n status: prerendered.status,\n });\n}\n\nasync function resolveBuiltMiddleware(\n options: RenderBuiltAppRequestOptions & {\n runtime: BuiltRuntime;\n timing?: { phases: Record<string, number> } | undefined;\n },\n request: Request,\n): Promise<{ request: Request; type: \"continue\" } | { response: Response; type: \"response\" }> {\n if (!options.runtime.hasMiddleware) {\n return { request, type: \"continue\" };\n }\n\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, undefined);\n\n return resolveAppRouterMiddleware({\n appDir: options.runtime.appDir,\n importPolicy: {\n ...options.importPolicy,\n allowedSourceDirs: options.runtime.allowedSourceDirs,\n projectRoot: options.runtime.projectRoot,\n },\n instrumentation: options.instrumentation,\n request,\n serverModules: options.runtime.serverModules,\n serverModuleCacheVersion: options.runtime.serverModuleCacheVersion,\n serverSourceFiles: options.runtime.serverSourceFiles,\n timing: options.timing,\n });\n}\n\nfunction createBuiltRenderTiming(\n logger: AppRouterLogger | undefined,\n): { phases: Record<string, number> } | undefined {\n return logger?.debug === undefined ? undefined : { phases: {} };\n}\n\nfunction builtRenderTimingPhaseStartedAt(\n timing: { phases: Record<string, number> } | undefined,\n): number | undefined {\n return timing === undefined ? undefined : logNow();\n}\n\nfunction finishBuiltRenderTimingPhase(\n timing: { phases: Record<string, number> } | undefined,\n startedAt: number | undefined,\n phaseName: string,\n): void {\n if (timing === undefined || startedAt === undefined) {\n return;\n }\n\n timing.phases[phaseName] = logDurationMs(startedAt);\n}\n\nfunction emitBuiltRenderTiming(\n options: RenderBuiltAppRequestOptions,\n request: Request,\n timing: { phases: Record<string, number> } | undefined,\n status: number,\n): void {\n if (timing === undefined) {\n return;\n }\n\n emitRouterLog(options.logger, \"debug\", {\n method: request.method,\n path: new URL(request.url).pathname,\n phases: timing.phases,\n status,\n type: \"router:render:timing\",\n });\n}\n\nasync function applyBuiltAppResponseHook(\n response: Response,\n options: Pick<RenderBuiltAppRequestOptions, \"onResponse\" | \"request\">,\n runtime: BuiltRuntime,\n): Promise<Response> {\n await loadBuiltResponseHookArtifacts(runtime);\n const onResponse = await resolveAppRouterResponseHook({\n appDir: runtime.appDir,\n importPolicy: runtime.generatedImportPolicy,\n onResponse: options.onResponse,\n serverModules: runtime.serverModules,\n serverModuleCacheVersion: runtime.serverModuleCacheVersion,\n serverSourceFiles: runtime.serverSourceFiles,\n });\n const hooked = await onResponse?.(response, {\n request: options.request,\n });\n\n return protectNonceBearingResponse(hooked instanceof Response ? hooked : response);\n}\n\nasync function materializeResponseAsBuffer(response: Response): Promise<Response> {\n if (response.body === null) {\n return response;\n }\n\n // Drains streaming responses into a single Buffer (loses TTFB streaming\n // by design — opt-in via sinkStrategy === \"buffer\"). Avoids the\n // string → UTF-8 encode the Response stream would otherwise do lazily\n // during the socket write. Tagged via `bytesResponse` so `sendResponse`\n // can take the raw-bytes fast path.\n const bytes = new Uint8Array(await response.arrayBuffer());\n return bytesResponse(bytes, {\n headers: response.headers,\n status: response.status,\n statusText: response.statusText,\n });\n}\n\n/**\n * Starts a Node HTTP server for an already built app-router output directory.\n *\n * Use this for production-like local serving or custom Node deployments. It loads `.mreact/server` artifacts, applies the generated import policy when configured, enforces host trust options, and returns a `close()` method for orderly shutdown.\n */\nexport async function startServer(\n options: StartServerOptions,\n): Promise<{ close(): Promise<void>; server: Server; url: string }> {\n warnIfImplicitHostTrust(options);\n const runtime = await createBuiltRequestRuntime({\n importPolicy: options.importPolicy,\n outDir: options.outDir,\n });\n\n return await startNodeRequestServer({\n allowedHosts: options.allowedHosts,\n errorHandler: options.errorHandler,\n hostname: options.hostname,\n hostPolicy: options.hostPolicy,\n logger: options.logger,\n onUpgrade: options.onUpgrade,\n port: options.port,\n resolveHost: resolveRequestHost,\n trustForwardedProto: options.trustForwardedProto,\n upgradeCloseTimeoutMs: options.upgradeCloseTimeoutMs,\n upgradeDecisionTimeoutMs: options.upgradeDecisionTimeoutMs,\n upgradeOriginPolicy: options.upgradeOriginPolicy,\n render: (request) =>\n runtime.render(request, {\n dehydrateOptions: options.dehydrateOptions,\n instrumentation: options.instrumentation,\n logger: options.logger,\n onResponse: options.onResponse,\n prerenderStore: options.prerenderStore,\n routeCache: options.routeCache,\n serverActions: options.serverActions,\n ...(options.sinkStrategy === undefined ? {} : { sinkStrategy: options.sinkStrategy }),\n }),\n });\n}\n\nexport const __readBuiltPublicAssetForTest = readBuiltPublicAsset;\n\nexport function __clearBuiltRuntimeCacheForTest(): void {\n builtRuntimeCache.clear();\n builtRuntimeReadInflight.clear();\n builtRuntimeMaterializeCountForTest = 0;\n}\n\nexport function __getBuiltRuntimeMaterializeCountForTest(): number {\n return builtRuntimeMaterializeCountForTest;\n}\n\nexport function __clearBuiltPublicAssetCacheForTest(): void {\n clearBuiltPublicAssetCacheForTest();\n}\n\nexport function __getBuiltPublicAssetCacheSizeForTest(): number {\n return getBuiltPublicAssetCacheSizeForTest();\n}\n\nasync function readBuiltRuntime(options: {\n immutable?: boolean | undefined;\n outDir: string;\n runtimeDir?: string | undefined;\n}): Promise<BuiltRuntime> {\n const outDir = options.outDir;\n const runtimeDir = options.runtimeDir ?? join(outDir, \"server\", \"runtime\");\n const cacheKey = `${outDir}\\0${runtimeDir}`;\n const cached = builtRuntimeCache.get(cacheKey);\n\n if (options.immutable === true && cached !== undefined) {\n return cached.runtime;\n }\n\n if (cached === undefined) {\n const inflight = builtRuntimeReadInflight.get(cacheKey);\n if (inflight !== undefined) {\n return inflight;\n }\n\n const runtime = readBuiltRuntimeUncached({\n cacheKey,\n cached,\n outDir,\n runtimeDir,\n });\n builtRuntimeReadInflight.set(cacheKey, runtime);\n void runtime\n .finally(() => {\n if (builtRuntimeReadInflight.get(cacheKey) === runtime) {\n builtRuntimeReadInflight.delete(cacheKey);\n }\n })\n .catch(() => {});\n return runtime;\n }\n\n return readBuiltRuntimeUncached({\n cacheKey,\n cached,\n outDir,\n runtimeDir,\n });\n}\n\nasync function readBuiltRuntimeUncached(options: {\n cached: BuiltRuntimeCacheEntry | undefined;\n cacheKey: string;\n outDir: string;\n runtimeDir: string;\n}): Promise<BuiltRuntime> {\n const { cacheKey, cached, outDir, runtimeDir } = options;\n const serverManifestPath = join(outDir, \"server\", \"manifest.json\");\n const clientManifestPath = join(outDir, \"client\", \"manifest.json\");\n const importPolicyPath = join(outDir, \"server\", \"import-policy.json\");\n const [serverManifestText, clientManifestText, importPolicyText] = await Promise.all([\n readRequiredBuiltArtifactText(serverManifestPath, \"built app server manifest\"),\n readRequiredBuiltArtifactText(clientManifestPath, \"built app client manifest\"),\n readBuiltImportPolicyText(outDir),\n ]);\n\n if (\n cached !== undefined &&\n cached.serverManifestText === serverManifestText &&\n cached.clientManifestText === clientManifestText &&\n cached.importPolicyText === importPolicyText\n ) {\n return cached.runtime;\n }\n\n const runtime = materializeBuiltRuntime({\n clientManifestText,\n clientManifestPath,\n importPolicyText,\n importPolicyPath,\n onMaterialize() {\n builtRuntimeMaterializeCountForTest += 1;\n },\n outDir,\n runtimeDir,\n serverManifestText,\n serverManifestPath,\n });\n\n builtRuntimeCache.set(cacheKey, {\n clientManifestText,\n importPolicyText,\n runtime,\n serverManifestText,\n });\n runtime.catch(() => {\n if (builtRuntimeCache.get(cacheKey)?.runtime === runtime) {\n builtRuntimeCache.delete(cacheKey);\n }\n });\n\n return runtime;\n}\n\nfunction isMissingFileError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { code?: unknown }).code === \"ENOENT\"\n );\n}\n\nasync function readRequiredBuiltArtifactText(labelPath: string, label: string): Promise<string> {\n try {\n return await readFile(labelPath, \"utf8\");\n } catch (error) {\n throw builtArtifactReadError(label, labelPath, error);\n }\n}\n\nfunction builtArtifactReadError(label: string, artifactPath: string, error: unknown): Error {\n const prefix = isMissingFileError(error) ? \"Missing\" : \"Unable to read\";\n const detail = error instanceof Error && error.message !== \"\" ? `: ${error.message}` : \"\";\n\n return new Error(`${prefix} ${label}: ${artifactPath}${detail}`, { cause: error });\n}\n\nasync function readPrerenderedRoute(\n runtime: BuiltRuntime,\n path: string,\n store: AppRouterPrerenderStore | undefined,\n): Promise<BuiltPrerenderedRoute | undefined> {\n const stored = await store?.get(path);\n\n if (stored !== undefined) {\n if (isCurrentPrerenderedRoute(stored)) {\n runtime.prerenderedRoutes.set(path, stored);\n return stored;\n }\n\n await store?.delete(path);\n }\n\n const manifestEntry = runtime.prerenderedRoutes.get(path);\n\n if (!isCurrentPrerenderedRoute(manifestEntry)) {\n runtime.prerenderedRoutes.delete(path);\n return undefined;\n }\n\n if (store !== undefined) {\n await store.set(path, manifestEntry);\n }\n\n return manifestEntry;\n}\n\nfunction renderBuiltDynamicResponse(\n options: RenderBuiltAppRequestOptions & {\n matchedRoute?: MatchedRoute | undefined;\n renderSignals?: { headerDependent: () => boolean } | undefined;\n requestUrl?: URL | undefined;\n runtime: BuiltRuntime;\n },\n): Promise<Response> {\n return renderAppRequest({\n ...builtRenderAppRequestOptions(options),\n ...(options.renderSignals === undefined ? {} : { renderSignals: options.renderSignals }),\n });\n}\n\nfunction builtRenderAppRequestOptions(\n options: RenderBuiltAppRequestOptions & {\n matchedRoute?: MatchedRoute | undefined;\n requestUrl?: URL | undefined;\n runtime: BuiltRuntime;\n },\n): RenderAppRequestRuntimeOptions {\n const serverRenderArtifactLoader: AppRouterServerRenderArtifactLoader = {\n async load(routeFile: string) {\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, routeFile, {\n includeRender: true,\n });\n },\n };\n const renderOptions: RenderAppRequestRuntimeOptions = {\n appDir: options.runtime.appDir,\n assetBaseUrl: options.runtime.assetBaseUrl,\n clientScripts: options.runtime.clientScripts,\n clientStylesByFile: options.runtime.clientStylesByFile,\n clientStyles: options.runtime.clientStyles,\n dehydrateOptions: options.dehydrateOptions,\n importPolicy: {\n ...options.importPolicy,\n allowedSourceDirs: options.runtime.allowedSourceDirs,\n projectRoot: options.runtime.projectRoot,\n },\n request: options.request,\n instrumentation: options.instrumentation,\n logger: options.logger,\n matchedRoute: options.matchedRoute,\n navigationScripts: options.runtime.navigationScripts,\n routeCache: options.routeCache,\n routeMatcher: options.runtime.routeMatcher,\n requestUrl: options.requestUrl,\n routes: options.runtime.routes,\n serverRenderArtifactLoader,\n serverModules: options.runtime.serverModules,\n serverModuleCacheVersion: options.runtime.serverModuleCacheVersion,\n serverSourceFiles: options.runtime.serverSourceFiles,\n serverActionReferencesByFile: options.runtime.serverActionReferencesByFile,\n serverActions: mergeBuiltServerActionOptions(\n options.serverActions,\n options.runtime.serverActionManifest,\n ),\n skipMiddleware: true,\n onResponse: () => undefined,\n ...(options.preload === undefined ? {} : { preload: options.preload }),\n };\n\n return renderOptions;\n}\n\nfunction mergeBuiltServerActionOptions(\n options: AppRouterServerActionOptions | undefined,\n allowedActions:\n | readonly { moduleId: string; exportName: string; inferred?: boolean }[]\n | undefined,\n): AppRouterServerActionOptions | undefined {\n if (allowedActions === undefined) {\n return options;\n }\n\n return {\n ...options,\n allowedActions,\n };\n}\n\nasync function renderAndCachePrerenderWithLock(\n options: RenderBuiltAppRequestOptions & { runtime: BuiltRuntime },\n path: string,\n): Promise<Response> {\n const lockKey =\n options.request.headers.get(\"x-mreact-navigation\") === \"1\" ? `${path}\\0navigation` : path;\n const existing = options.runtime.prerenderLocks.get(lockKey);\n\n if (existing !== undefined) {\n const result = await existing;\n if (result.shareable) {\n return cloneResponse(result.response);\n }\n\n return (await runPrerenderRegeneration(options, path)).response;\n }\n\n const task = runPrerenderRegeneration(options, path);\n options.runtime.prerenderLocks.set(lockKey, task);\n\n try {\n return cloneResponse((await task).response);\n } finally {\n options.runtime.prerenderLocks.delete(lockKey);\n }\n}\n\nasync function runPrerenderRegeneration(\n options: RenderBuiltAppRequestOptions & { runtime: BuiltRuntime },\n path: string,\n): Promise<{ response: Response; shareable: boolean }> {\n const lockKey =\n options.request.headers.get(\"x-mreact-navigation\") === \"1\" ? `${path}\\0navigation` : path;\n const regenerate = async () => {\n const stored = await readPrerenderedRoute(options.runtime, path, options.prerenderStore);\n const storedResponse = prerenderedRouteResponse(stored, options.request);\n\n if (storedResponse !== undefined) {\n return {\n response: storedResponse,\n shareable: true,\n };\n }\n\n // A prerendered entry is replayed to every visitor by path alone, so a\n // render that depended on this visitor's request headers must not become\n // one; it is returned to the caller without being stored. The signal starts\n // closed so that a render which never reports back is not stored either.\n const renderSignals = {\n headerDependent: () => true,\n strictTransportSecurity: () => undefined as string | undefined,\n };\n const response = await renderBuiltDynamicResponse({ ...options, renderSignals });\n\n if (!response.ok) {\n return { response, shareable: false };\n }\n\n // Draining the body finishes a streamed render, so the signal is only\n // final once the whole response has been read.\n const body = await response.text();\n\n if (renderSignals.headerDependent() || isVisitorDependentResponse(response)) {\n return {\n response: htmlResponse(body, {\n headers: response.headers,\n status: response.status,\n }),\n shareable: false,\n };\n }\n\n const navigation = options.request.headers.get(\"x-mreact-navigation\") === \"1\";\n if (navigation && stored === undefined) {\n return {\n response: htmlResponse(body, {\n headers: response.headers,\n status: response.status,\n }),\n shareable: false,\n };\n }\n\n return {\n response: await cacheRegeneratedPrerenderedRoute(\n options.runtime,\n path,\n body,\n response,\n renderSignals.strictTransportSecurity(),\n options.prerenderStore,\n navigation ? stored : undefined,\n ),\n shareable: true,\n };\n };\n\n return options.prerenderStore?.withLock === undefined\n ? await regenerate()\n : await options.prerenderStore.withLock(lockKey, regenerate);\n}\n\nasync function applyBuiltPrerenderInvalidations(\n runtime: BuiltRuntime,\n response: Response,\n store: AppRouterPrerenderStore | undefined,\n): Promise<void> {\n const revalidated = response.headers.get(\"x-mreact-revalidate\");\n\n if (revalidated === null) {\n return;\n }\n\n for (const path of revalidated.split(\",\")) {\n const normalized = normalizeRoutePath(path.trim());\n runtime.prerenderedRoutes.delete(normalized);\n await store?.delete(normalized);\n }\n}\n\nasync function cacheRegeneratedPrerenderedRoute(\n runtime: BuiltRuntime,\n path: string,\n body: string,\n response: Response,\n strictTransportSecurity: string | undefined,\n store: AppRouterPrerenderStore | undefined,\n existing?: BuiltPrerenderedRoute | undefined,\n): Promise<Response> {\n const headers = storedPrerenderedRouteHeaders(response.headers);\n const entry: BuiltPrerenderedRoute =\n existing === undefined\n ? {\n headers,\n html: body,\n schemaVersion: PRERENDERED_ROUTE_SCHEMA_VERSION,\n status: response.status,\n ...(strictTransportSecurity === undefined ? {} : { strictTransportSecurity }),\n }\n : mergePrerenderedNavigationHtml(existing, body);\n if (entry === existing) {\n return htmlResponse(body, {\n headers: response.headers,\n status: response.status,\n });\n }\n runtime.prerenderedRoutes.set(path, entry);\n await store?.set(path, entry);\n\n return htmlResponse(body, {\n headers: response.headers,\n status: response.status,\n });\n}\n\nasync function cloneResponse(response: Response): Promise<Response> {\n return htmlResponse(await response.clone().text(), {\n headers: response.headers,\n status: response.status,\n });\n}\n"]}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Server } from \"node:http\";\nimport type { DehydrateOptions } from \"@reckona/mreact-query\";\nimport { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport type { BuiltPrerenderedRoute } from \"./build.js\";\nimport type { AppRouterCache } from \"./cache.js\";\nimport {\n builtClientAssetPathname,\n clearBuiltPublicAssetCacheForTest,\n getBuiltPublicAssetCacheSizeForTest,\n readBuiltClientAsset,\n readBuiltPublicAsset,\n} from \"./built-assets.js\";\nimport {\n materializeBuiltRuntime,\n mergeBuiltRuntimeImportPolicy,\n readBuiltImportPolicyText,\n type BuiltRuntime,\n} from \"./built-runtime.js\";\nimport {\n allBuiltServerModuleFiles,\n loadBuiltResponseHookArtifacts,\n loadBuiltServerModuleArtifacts,\n loadBuiltServerModuleArtifactsForRequest,\n} from \"./built-server-module-artifacts.js\";\nimport { type AppRoute, type MatchedRoute } from \"./routes.js\";\nimport type { AppRouterServerActionOptions } from \"./actions.js\";\nimport type { AppRouterImportPolicy } from \"./import-policy.js\";\nimport {\n preloadBuiltRequestModules,\n renderAppRequest,\n resolveAppRouterResponseHook,\n resolveAppRouterMiddleware,\n type AppRouterServerRenderArtifactLoader,\n type AppRouterRenderPreload,\n type AppRouterResponseHook,\n type RenderAppRequestRuntimeOptions,\n} from \"./render.js\";\nimport {\n invokeRouterInstrumentation,\n traceContextFromRequest,\n type RouterInstrumentation,\n} from \"./trace.js\";\nimport { bytesResponse, htmlResponse } from \"./http.js\";\nimport { emitRouterLog, logDurationMs, logNow, type AppRouterLogger } from \"./logger.js\";\nimport { startNodeRequestServer } from \"./node-server.js\";\nimport { builtAppRuntimePreloadPlan } from \"./preload-policy.js\";\nimport { normalizeRoutePath } from \"./route-path.js\";\nimport type { HttpUpgradeOriginPolicy, ManagedHttpUpgradeHandler } from \"./upgrade.js\";\nimport {\n isCurrentPrerenderedRoute,\n isVisitorDependentResponse,\n mergePrerenderedNavigationHtml,\n protectNonceBearingResponse,\n PRERENDERED_ROUTE_SCHEMA_VERSION,\n replayedPrerenderedRouteHeaders,\n storedPrerenderedRouteHeaders,\n validatedPrerenderedNavigationHtml,\n} from \"./prerender-entry.js\";\n\ninterface BuiltRuntimeCacheEntry {\n clientManifestText: string;\n importPolicyText: string | undefined;\n runtime: Promise<BuiltRuntime>;\n serverManifestText: string;\n}\n\nconst builtRuntimeCache = new Map<string, BuiltRuntimeCacheEntry>();\nconst builtRuntimeReadInflight = new Map<string, Promise<BuiltRuntime>>();\nlet builtRuntimeMaterializeCountForTest = 0;\n\n/**\n * Strategy for the final response body shape sent to the HTTP layer.\n *\n * - `\"string\"` (default, cross-runtime): body is the raw HTML string. The\n * underlying runtime encodes to UTF-8 bytes when writing to the socket.\n * - `\"buffer\"` (Node only): materialize the response body into a Buffer\n * before returning. Skips the implicit encode at the Response → socket\n * boundary and can let Node's HTTP layer write bytes directly.\n *\n * The buffer path forces full materialization of streaming responses\n * (loses TTFB streaming) — only opt in if the throughput gain outweighs\n * that on your workload.\n */\nexport type ResponseSinkStrategy = \"string\" | \"buffer\";\n/**\n * Controls whether built request handling trusts the incoming Host header.\n */\nexport type RequestHostPolicy = \"strict\" | \"trusted-proxy\";\n\nlet warnedImplicitHostTrust = false;\n\n/**\n * Configures rendering a request against a built app-router output directory.\n */\nexport interface RenderBuiltAppRequestOptions {\n dehydrateOptions?: DehydrateOptions | undefined;\n outDir: string;\n importPolicy?: AppRouterImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n logger?: AppRouterLogger | undefined;\n onResponse?: AppRouterResponseHook | undefined;\n prerenderStore?: AppRouterPrerenderStore | undefined;\n request: Request;\n routeCache?: AppRouterCache | undefined;\n runtimeDir?: string | undefined;\n immutableRuntime?: boolean | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n sinkStrategy?: ResponseSinkStrategy;\n preload?: AppRouterRenderPreload | undefined;\n}\n\nexport interface BuiltRequestRuntimeOptions {\n immutableRuntime?: boolean | undefined;\n importPolicy?: AppRouterImportPolicy | undefined;\n outDir: string;\n runtimeDir?: string | undefined;\n}\n\nexport type BuiltRequestRuntimeRenderOptions = Omit<\n RenderBuiltAppRequestOptions,\n \"immutableRuntime\" | \"outDir\" | \"request\" | \"runtimeDir\"\n>;\n\nexport interface BuiltRequestRuntime {\n preload(preload?: BuiltAppRuntimePreloadStrategy | undefined): Promise<void>;\n render(\n request: Request,\n options?: BuiltRequestRuntimeRenderOptions | undefined,\n ): Promise<Response>;\n}\n\n/**\n * Selects which built runtime modules should be preloaded.\n */\nexport type BuiltAppRuntimePreloadMode =\n | \"all\"\n | \"hot-route-requests\"\n | \"hot-routes\"\n | \"middleware\"\n | \"none\";\n\n/**\n * Configures built app runtime preload scope and optional hot routes.\n */\nexport interface BuiltAppRuntimePreloadStrategy {\n mode: BuiltAppRuntimePreloadMode;\n routes?: readonly string[] | undefined;\n}\n\n/**\n * Configures the Node HTTP server used to serve a built app-router output.\n */\nexport interface StartServerOptions {\n dehydrateOptions?: DehydrateOptions | undefined;\n outDir: string;\n port: number;\n hostname?: string;\n // Optional hook for customizing the 500 response. The default returns\n // a generic \"Internal Server Error\" body and logs the stack to stderr\n // via console.error. Issue 071: stack traces must never end up in\n // production responses.\n errorHandler?: (error: unknown) => {\n body: string;\n status: number;\n headers?: Record<string, string>;\n };\n // When set, an incoming Host header that does not exactly match one of\n // the listed values is replaced with the configured hostname/port for\n // origin reconstruction. Use this in front of public deployments to\n // block Host header injection (Issue 068). Undefined preserves the\n // legacy \"trust Host\" behavior for backward compatibility when\n // hostPolicy is not configured.\n allowedHosts?: readonly string[] | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n importPolicy?: AppRouterImportPolicy | undefined;\n instrumentation?: RouterInstrumentation | undefined;\n logger?: AppRouterLogger | undefined;\n onResponse?: AppRouterResponseHook | undefined;\n prerenderStore?: AppRouterPrerenderStore | undefined;\n routeCache?: AppRouterCache | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n sinkStrategy?: ResponseSinkStrategy;\n onUpgrade?: ManagedHttpUpgradeHandler | undefined;\n /** Maximum time to wait for application-owned upgrade sockets during shutdown. */\n upgradeCloseTimeoutMs?: number | undefined;\n /** Maximum time an asynchronous upgrade handler may leave ownership undecided. */\n upgradeDecisionTimeoutMs?: number | undefined;\n /** Origin policy for application HTTP upgrades. Defaults to exact same-origin validation. */\n upgradeOriginPolicy?: HttpUpgradeOriginPolicy | undefined;\n /**\n * Trusts the first `X-Forwarded-Proto` value when the socket is not TLS.\n *\n * Defaults to `false`. Enable only behind a proxy that overwrites the header\n * and prevents untrusted clients from reaching the Node listener directly.\n */\n trustForwardedProto?: boolean | undefined;\n}\n\nexport function resolveRequestHost(options: {\n allowedHosts?: readonly string[] | undefined;\n fallbackHost: string;\n hostPolicy?: RequestHostPolicy | undefined;\n rawHost: string | undefined;\n}): string {\n const raw = options.rawHost;\n if (raw === undefined || raw === \"\") return options.fallbackHost;\n if (options.allowedHosts === undefined) {\n return options.hostPolicy === \"strict\" ? options.fallbackHost : raw;\n }\n return options.allowedHosts.includes(raw) ? raw : options.fallbackHost;\n}\n\nexport function warnIfImplicitHostTrust(options: {\n allowedHosts?: readonly string[] | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n}): void {\n if (\n process.env.NODE_ENV !== \"production\" ||\n options.allowedHosts !== undefined ||\n options.hostPolicy !== undefined ||\n warnedImplicitHostTrust\n ) {\n return;\n }\n\n warnedImplicitHostTrust = true;\n console.error(\n '[mreact] Host header trust is implicit because neither allowedHosts nor hostPolicy is configured. Set allowedHosts for public deployments, hostPolicy: \"strict\" to reject unlisted Host headers, or hostPolicy: \"trusted-proxy\" when a trusted reverse proxy normalizes Host.',\n );\n}\n\n/**\n * Defines storage for prerendered route responses used by built request rendering.\n */\nexport interface AppRouterPrerenderStore {\n delete(path: string): void | Promise<void>;\n get(path: string): BuiltPrerenderedRoute | undefined | Promise<BuiltPrerenderedRoute | undefined>;\n set(path: string, entry: BuiltPrerenderedRoute): void | Promise<void>;\n withLock?<T>(path: string, task: () => Promise<T>): Promise<T>;\n}\n\nexport async function createBuiltRequestRuntime(\n options: BuiltRequestRuntimeOptions,\n): Promise<BuiltRequestRuntime> {\n const runtime = await readBuiltRuntime({\n immutable: options.immutableRuntime,\n outDir: options.outDir,\n runtimeDir: options.runtimeDir,\n });\n const defaultImportPolicy = mergeBuiltRuntimeImportPolicy(runtime, options.importPolicy);\n\n return {\n preload(preload) {\n return preloadBuiltAppRuntimeWithRuntime({\n importPolicy: defaultImportPolicy,\n preload,\n runtime,\n });\n },\n async render(request, renderOptions = {}) {\n emitBuiltRequestStart(renderOptions.instrumentation, request);\n const response = await renderBuiltAppRequestWithRuntime({\n ...renderOptions,\n dehydrateOptions: renderOptions.dehydrateOptions ?? runtime.dehydrateOptions,\n instrumentation: withoutBuiltRequestInstrumentation(renderOptions.instrumentation),\n importPolicy:\n renderOptions.importPolicy === undefined\n ? defaultImportPolicy\n : mergeBuiltRuntimeImportPolicy(runtime, renderOptions.importPolicy),\n outDir: options.outDir,\n request,\n runtime,\n });\n\n const finalResponse = await applyBuiltAppResponseHook(\n response,\n {\n onResponse: renderOptions.onResponse,\n request,\n },\n runtime,\n );\n emitBuiltRequestEnd(renderOptions.instrumentation, request, finalResponse.status);\n return finalResponse;\n },\n };\n}\n\n/**\n * Preloads selected modules from a built app-router runtime.\n */\nexport async function preloadBuiltAppRuntime(options: {\n importPolicy?: AppRouterImportPolicy | undefined;\n outDir: string;\n preload?: BuiltAppRuntimePreloadStrategy | undefined;\n runtimeDir?: string | undefined;\n}): Promise<void> {\n const runtime = await readBuiltRuntime({\n outDir: options.outDir,\n runtimeDir: options.runtimeDir,\n });\n await preloadBuiltAppRuntimeWithRuntime({\n importPolicy: mergeBuiltRuntimeImportPolicy(runtime, options.importPolicy),\n preload: options.preload,\n runtime,\n });\n}\n\nasync function preloadBuiltAppRuntimeWithRuntime(options: {\n importPolicy?: AppRouterImportPolicy | undefined;\n preload?: BuiltAppRuntimePreloadStrategy | undefined;\n runtime: BuiltRuntime;\n}): Promise<void> {\n const plan = builtAppRuntimePreloadPlan(options.preload);\n\n if (!plan.shouldPreload) {\n return;\n }\n\n const routes = builtRuntimePreloadRoutes(options.runtime, plan);\n if (plan.loadAllArtifacts) {\n await loadBuiltServerModuleArtifacts(\n options.runtime,\n allBuiltServerModuleFiles(options.runtime),\n \"all\",\n );\n } else {\n await loadBuiltServerModuleArtifactsForRequest(\n options.runtime,\n undefined,\n plan.middlewareArtifacts,\n );\n for (const route of routes) {\n await loadBuiltServerModuleArtifactsForRequest(\n options.runtime,\n route.file,\n plan.routeArtifacts,\n );\n }\n }\n await preloadBuiltRequestModules({\n appDir: options.runtime.appDir,\n importPolicy: {\n ...options.importPolicy,\n allowedSourceDirs: options.runtime.allowedSourceDirs,\n projectRoot: options.runtime.projectRoot,\n },\n routes,\n serverModules: options.runtime.serverModules,\n serverModuleCacheVersion: options.runtime.serverModuleCacheVersion,\n serverSourceFiles: options.runtime.serverSourceFiles,\n serverActionReferencesByFile: options.runtime.serverActionReferencesByFile,\n includeRenderModules: plan.includeRenderModules,\n });\n}\n\nfunction builtRuntimePreloadRoutes(\n runtime: BuiltRuntime,\n strategy: BuiltAppRuntimePreloadStrategy,\n): readonly AppRoute[] {\n if (strategy.mode === \"all\") {\n return runtime.routes;\n }\n\n if (strategy.mode === \"middleware\" || strategy.mode === \"none\") {\n return [];\n }\n\n const routes = strategy.routes ?? [];\n return routes.map((path) => {\n const route = runtime.routeMatcher.match(normalizeRoutePath(path))?.route;\n if (route === undefined) {\n throw new Error(`Unknown hot route preload path: ${path}`);\n }\n return route;\n });\n}\n\n/**\n * Renders a request using a built app-router output directory.\n */\nexport async function renderBuiltAppRequest(\n options: RenderBuiltAppRequestOptions,\n): Promise<Response> {\n emitBuiltRequestStart(options.instrumentation, options.request);\n const runtime = await readBuiltRuntime({\n outDir: options.outDir,\n immutable: options.immutableRuntime,\n runtimeDir: options.runtimeDir,\n });\n const response = await renderBuiltAppRequestWithRuntime({\n ...options,\n instrumentation: withoutBuiltRequestInstrumentation(options.instrumentation),\n importPolicy: mergeBuiltRuntimeImportPolicy(runtime, options.importPolicy),\n runtime,\n });\n\n const finalResponse = await applyBuiltAppResponseHook(response, options, runtime);\n emitBuiltRequestEnd(options.instrumentation, options.request, finalResponse.status);\n return finalResponse;\n}\n\nfunction withoutBuiltRequestInstrumentation(\n instrumentation: RouterInstrumentation | undefined,\n): RouterInstrumentation | undefined {\n if (instrumentation === undefined) {\n return undefined;\n }\n\n const {\n onRequestEnd: _onRequestEnd,\n onRequestStart: _onRequestStart,\n ...remaining\n } = instrumentation;\n return remaining;\n}\n\nfunction emitBuiltRequestStart(\n instrumentation: RouterInstrumentation | undefined,\n request: Request,\n): void {\n const trace = traceContextFromRequest(request);\n invokeRouterInstrumentation(instrumentation?.onRequestStart, {\n method: request.method,\n path: new URL(request.url).pathname,\n request,\n ...(trace === undefined ? {} : { trace }),\n });\n}\n\nfunction emitBuiltRequestEnd(\n instrumentation: RouterInstrumentation | undefined,\n request: Request,\n status: number,\n): void {\n const trace = traceContextFromRequest(request);\n invokeRouterInstrumentation(instrumentation?.onRequestEnd, {\n method: request.method,\n path: new URL(request.url).pathname,\n request,\n status,\n ...(trace === undefined ? {} : { trace }),\n });\n}\n\nasync function renderBuiltAppRequestWithRuntime(\n options: RenderBuiltAppRequestOptions & { runtime: BuiltRuntime },\n): Promise<Response> {\n const url = new URL(options.request.url);\n const timing = createBuiltRenderTiming(options.logger);\n\n const clientAssetPathname = builtClientAssetPathname(options.request, url);\n\n if (clientAssetPathname !== undefined) {\n return readBuiltClientAsset(\n options.outDir,\n clientAssetPathname,\n options.runtime.clientAssetPaths,\n );\n }\n\n if (options.request.method === \"GET\" || options.request.method === \"HEAD\") {\n const publicAsset = await readBuiltPublicAsset(options.outDir, url.pathname);\n\n if (publicAsset !== undefined) {\n return publicAsset;\n }\n }\n\n let request = options.request;\n let normalizedPath = normalizeRoutePath(url.pathname);\n let matched = options.runtime.routeMatcher.match(normalizedPath);\n\n // Prerendered HTML may only be served ahead of middleware when the app has\n // no middleware at all. Otherwise a middleware that gates access (auth,\n // geo blocking, maintenance mode) would be bypassed for exactly the routes\n // it is most often used to protect.\n if (!options.runtime.hasMiddleware && (request.method === \"GET\" || request.method === \"HEAD\")) {\n // Sync fast path when no external prerender store is configured (the\n // common case): skip the Promise wrap that `readPrerenderedRoute`\n // would otherwise introduce just to satisfy the async signature.\n const prerendered =\n options.prerenderStore === undefined\n ? options.runtime.prerenderedRoutes.get(normalizedPath)\n : await readPrerenderedRoute(options.runtime, normalizedPath, options.prerenderStore);\n const prerenderedResponse = prerenderedRouteResponse(prerendered, request);\n\n if (prerenderedResponse !== undefined) {\n return prerenderedResponse;\n }\n }\n\n const middlewareStartedAt = builtRenderTimingPhaseStartedAt(timing);\n const middlewareResult = await resolveBuiltMiddleware({ ...options, timing }, request);\n finishBuiltRenderTimingPhase(timing, middlewareStartedAt, \"middlewareMs\");\n if (middlewareResult.type === \"response\") {\n emitBuiltRenderTiming(options, request, timing, middlewareResult.response.status);\n return middlewareResult.response;\n }\n if (middlewareResult.request !== request) {\n request = middlewareResult.request;\n normalizedPath = normalizeRoutePath(new URL(request.url).pathname);\n matched = options.runtime.routeMatcher.match(normalizedPath);\n }\n\n // Middleware apps resolve prerendered HTML here instead, so that a\n // middleware response or rewrite is honoured before the stored HTML is\n // served. The lookup uses the post-middleware path.\n if (options.runtime.hasMiddleware && (request.method === \"GET\" || request.method === \"HEAD\")) {\n const prerendered =\n options.prerenderStore === undefined\n ? options.runtime.prerenderedRoutes.get(normalizedPath)\n : await readPrerenderedRoute(options.runtime, normalizedPath, options.prerenderStore);\n const prerenderedResponse = prerenderedRouteResponse(prerendered, request);\n\n if (prerenderedResponse !== undefined) {\n emitBuiltRenderTiming(options, request, timing, prerenderedResponse.status);\n return prerenderedResponse;\n }\n }\n\n if (request.method === \"GET\" && options.runtime.prerenderableRoutes.has(normalizedPath)) {\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, matched?.route.file, {\n includeRender: false,\n });\n return renderAndCachePrerenderWithLock({ ...options, request }, normalizedPath);\n }\n\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, matched?.route.file, {\n includeRender: false,\n });\n const response = await renderBuiltDynamicResponse({\n ...options,\n matchedRoute: matched,\n request,\n requestUrl: new URL(request.url),\n });\n\n await applyBuiltPrerenderInvalidations(options.runtime, response, options.prerenderStore);\n\n return options.sinkStrategy === \"buffer\" ? await materializeResponseAsBuffer(response) : response;\n}\n\nfunction prerenderedRouteResponse(\n prerendered: BuiltPrerenderedRoute | undefined,\n request: Request,\n): Response | undefined {\n if (!isCurrentPrerenderedRoute(prerendered)) {\n return undefined;\n }\n\n const navigation = request.headers.get(\"x-mreact-navigation\") === \"1\";\n const html = navigation ? validatedPrerenderedNavigationHtml(prerendered) : prerendered.html;\n if (html === undefined) {\n return undefined;\n }\n\n if (request.method === \"HEAD\") {\n return new Response(null, {\n headers: replayedPrerenderedRouteHeaders(prerendered, request),\n status: prerendered.status,\n });\n }\n\n return htmlResponse(html, {\n headers: replayedPrerenderedRouteHeaders(prerendered, request),\n status: prerendered.status,\n });\n}\n\nasync function resolveBuiltMiddleware(\n options: RenderBuiltAppRequestOptions & {\n runtime: BuiltRuntime;\n timing?: { phases: Record<string, number> } | undefined;\n },\n request: Request,\n): Promise<{ request: Request; type: \"continue\" } | { response: Response; type: \"response\" }> {\n if (!options.runtime.hasMiddleware) {\n return { request, type: \"continue\" };\n }\n\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, undefined);\n\n return resolveAppRouterMiddleware({\n appDir: options.runtime.appDir,\n importPolicy: {\n ...options.importPolicy,\n allowedSourceDirs: options.runtime.allowedSourceDirs,\n projectRoot: options.runtime.projectRoot,\n },\n instrumentation: options.instrumentation,\n request,\n serverModules: options.runtime.serverModules,\n serverModuleCacheVersion: options.runtime.serverModuleCacheVersion,\n serverSourceFiles: options.runtime.serverSourceFiles,\n timing: options.timing,\n });\n}\n\nfunction createBuiltRenderTiming(\n logger: AppRouterLogger | undefined,\n): { phases: Record<string, number> } | undefined {\n return logger?.debug === undefined ? undefined : { phases: {} };\n}\n\nfunction builtRenderTimingPhaseStartedAt(\n timing: { phases: Record<string, number> } | undefined,\n): number | undefined {\n return timing === undefined ? undefined : logNow();\n}\n\nfunction finishBuiltRenderTimingPhase(\n timing: { phases: Record<string, number> } | undefined,\n startedAt: number | undefined,\n phaseName: string,\n): void {\n if (timing === undefined || startedAt === undefined) {\n return;\n }\n\n timing.phases[phaseName] = logDurationMs(startedAt);\n}\n\nfunction emitBuiltRenderTiming(\n options: RenderBuiltAppRequestOptions,\n request: Request,\n timing: { phases: Record<string, number> } | undefined,\n status: number,\n): void {\n if (timing === undefined) {\n return;\n }\n\n emitRouterLog(options.logger, \"debug\", {\n method: request.method,\n path: new URL(request.url).pathname,\n phases: timing.phases,\n status,\n type: \"router:render:timing\",\n });\n}\n\nasync function applyBuiltAppResponseHook(\n response: Response,\n options: Pick<RenderBuiltAppRequestOptions, \"onResponse\" | \"request\">,\n runtime: BuiltRuntime,\n): Promise<Response> {\n await loadBuiltResponseHookArtifacts(runtime);\n const onResponse = await resolveAppRouterResponseHook({\n appDir: runtime.appDir,\n importPolicy: runtime.generatedImportPolicy,\n onResponse: options.onResponse,\n serverModules: runtime.serverModules,\n serverModuleCacheVersion: runtime.serverModuleCacheVersion,\n serverSourceFiles: runtime.serverSourceFiles,\n });\n const hooked = await onResponse?.(response, {\n request: options.request,\n });\n\n return protectNonceBearingResponse(hooked instanceof Response ? hooked : response);\n}\n\nasync function materializeResponseAsBuffer(response: Response): Promise<Response> {\n if (response.body === null) {\n return response;\n }\n\n // Drains streaming responses into a single Buffer (loses TTFB streaming\n // by design — opt-in via sinkStrategy === \"buffer\"). Avoids the\n // string → UTF-8 encode the Response stream would otherwise do lazily\n // during the socket write. Tagged via `bytesResponse` so `sendResponse`\n // can take the raw-bytes fast path.\n const bytes = new Uint8Array(await response.arrayBuffer());\n return bytesResponse(bytes, {\n headers: response.headers,\n status: response.status,\n statusText: response.statusText,\n });\n}\n\n/**\n * Starts a Node HTTP server for an already built app-router output directory.\n *\n * Use this for production-like local serving or custom Node deployments. It loads `.mreact/server` artifacts, applies the generated import policy when configured, enforces host trust options, and returns a `close()` method for orderly shutdown.\n */\nexport async function startServer(\n options: StartServerOptions,\n): Promise<{ close(): Promise<void>; server: Server; url: string }> {\n warnIfImplicitHostTrust(options);\n const runtime = await createBuiltRequestRuntime({\n importPolicy: options.importPolicy,\n outDir: options.outDir,\n });\n\n return await startNodeRequestServer({\n allowedHosts: options.allowedHosts,\n errorHandler: options.errorHandler,\n hostname: options.hostname,\n hostPolicy: options.hostPolicy,\n logger: options.logger,\n onUpgrade: options.onUpgrade,\n port: options.port,\n resolveHost: resolveRequestHost,\n trustForwardedProto: options.trustForwardedProto,\n upgradeCloseTimeoutMs: options.upgradeCloseTimeoutMs,\n upgradeDecisionTimeoutMs: options.upgradeDecisionTimeoutMs,\n upgradeOriginPolicy: options.upgradeOriginPolicy,\n render: (request) =>\n runtime.render(request, {\n dehydrateOptions: options.dehydrateOptions,\n instrumentation: options.instrumentation,\n logger: options.logger,\n onResponse: options.onResponse,\n prerenderStore: options.prerenderStore,\n routeCache: options.routeCache,\n serverActions: options.serverActions,\n ...(options.sinkStrategy === undefined ? {} : { sinkStrategy: options.sinkStrategy }),\n }),\n });\n}\n\nexport const __readBuiltPublicAssetForTest = readBuiltPublicAsset;\n\nexport function __clearBuiltRuntimeCacheForTest(): void {\n builtRuntimeCache.clear();\n builtRuntimeReadInflight.clear();\n builtRuntimeMaterializeCountForTest = 0;\n}\n\nexport function __getBuiltRuntimeMaterializeCountForTest(): number {\n return builtRuntimeMaterializeCountForTest;\n}\n\nexport function __clearBuiltPublicAssetCacheForTest(): void {\n clearBuiltPublicAssetCacheForTest();\n}\n\nexport function __getBuiltPublicAssetCacheSizeForTest(): number {\n return getBuiltPublicAssetCacheSizeForTest();\n}\n\nasync function readBuiltRuntime(options: {\n immutable?: boolean | undefined;\n outDir: string;\n runtimeDir?: string | undefined;\n}): Promise<BuiltRuntime> {\n const outDir = options.outDir;\n const runtimeDir = options.runtimeDir ?? join(outDir, \"server\", \"runtime\");\n const cacheKey = `${outDir}\\0${runtimeDir}`;\n const cached = builtRuntimeCache.get(cacheKey);\n\n if (options.immutable === true && cached !== undefined) {\n return cached.runtime;\n }\n\n if (cached === undefined) {\n const inflight = builtRuntimeReadInflight.get(cacheKey);\n if (inflight !== undefined) {\n return inflight;\n }\n\n const runtime = readBuiltRuntimeUncached({\n cacheKey,\n cached,\n outDir,\n runtimeDir,\n });\n builtRuntimeReadInflight.set(cacheKey, runtime);\n void runtime\n .finally(() => {\n if (builtRuntimeReadInflight.get(cacheKey) === runtime) {\n builtRuntimeReadInflight.delete(cacheKey);\n }\n })\n .catch(() => {});\n return runtime;\n }\n\n return readBuiltRuntimeUncached({\n cacheKey,\n cached,\n outDir,\n runtimeDir,\n });\n}\n\nasync function readBuiltRuntimeUncached(options: {\n cached: BuiltRuntimeCacheEntry | undefined;\n cacheKey: string;\n outDir: string;\n runtimeDir: string;\n}): Promise<BuiltRuntime> {\n const { cacheKey, cached, outDir, runtimeDir } = options;\n const serverManifestPath = join(outDir, \"server\", \"manifest.json\");\n const clientManifestPath = join(outDir, \"client\", \"manifest.json\");\n const importPolicyPath = join(outDir, \"server\", \"import-policy.json\");\n const [serverManifestText, clientManifestText, importPolicyText] = await Promise.all([\n readRequiredBuiltArtifactText(serverManifestPath, \"built app server manifest\"),\n readRequiredBuiltArtifactText(clientManifestPath, \"built app client manifest\"),\n readBuiltImportPolicyText(outDir),\n ]);\n\n if (\n cached !== undefined &&\n cached.serverManifestText === serverManifestText &&\n cached.clientManifestText === clientManifestText &&\n cached.importPolicyText === importPolicyText\n ) {\n return cached.runtime;\n }\n\n const runtime = materializeBuiltRuntime({\n clientManifestText,\n clientManifestPath,\n importPolicyText,\n importPolicyPath,\n onMaterialize() {\n builtRuntimeMaterializeCountForTest += 1;\n },\n outDir,\n runtimeDir,\n serverManifestText,\n serverManifestPath,\n });\n\n builtRuntimeCache.set(cacheKey, {\n clientManifestText,\n importPolicyText,\n runtime,\n serverManifestText,\n });\n runtime.catch(() => {\n if (builtRuntimeCache.get(cacheKey)?.runtime === runtime) {\n builtRuntimeCache.delete(cacheKey);\n }\n });\n\n return runtime;\n}\n\nfunction isMissingFileError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { code?: unknown }).code === \"ENOENT\"\n );\n}\n\nasync function readRequiredBuiltArtifactText(labelPath: string, label: string): Promise<string> {\n try {\n return await readFile(labelPath, \"utf8\");\n } catch (error) {\n throw builtArtifactReadError(label, labelPath, error);\n }\n}\n\nfunction builtArtifactReadError(label: string, artifactPath: string, error: unknown): Error {\n const prefix = isMissingFileError(error) ? \"Missing\" : \"Unable to read\";\n const detail = error instanceof Error && error.message !== \"\" ? `: ${error.message}` : \"\";\n\n return new Error(`${prefix} ${label}: ${artifactPath}${detail}`, { cause: error });\n}\n\nasync function readPrerenderedRoute(\n runtime: BuiltRuntime,\n path: string,\n store: AppRouterPrerenderStore | undefined,\n): Promise<BuiltPrerenderedRoute | undefined> {\n const stored = await store?.get(path);\n\n if (stored !== undefined) {\n if (isCurrentPrerenderedRoute(stored)) {\n runtime.prerenderedRoutes.set(path, stored);\n return stored;\n }\n\n await store?.delete(path);\n }\n\n const manifestEntry = runtime.prerenderedRoutes.get(path);\n\n if (!isCurrentPrerenderedRoute(manifestEntry)) {\n runtime.prerenderedRoutes.delete(path);\n return undefined;\n }\n\n if (store !== undefined) {\n await store.set(path, manifestEntry);\n }\n\n return manifestEntry;\n}\n\nfunction renderBuiltDynamicResponse(\n options: RenderBuiltAppRequestOptions & {\n matchedRoute?: MatchedRoute | undefined;\n renderSignals?: { headerDependent: () => boolean } | undefined;\n requestUrl?: URL | undefined;\n runtime: BuiltRuntime;\n },\n): Promise<Response> {\n return renderAppRequest({\n ...builtRenderAppRequestOptions(options),\n ...(options.renderSignals === undefined ? {} : { renderSignals: options.renderSignals }),\n });\n}\n\nfunction builtRenderAppRequestOptions(\n options: RenderBuiltAppRequestOptions & {\n matchedRoute?: MatchedRoute | undefined;\n requestUrl?: URL | undefined;\n runtime: BuiltRuntime;\n },\n): RenderAppRequestRuntimeOptions {\n const serverRenderArtifactLoader: AppRouterServerRenderArtifactLoader = {\n async load(routeFile: string) {\n await loadBuiltServerModuleArtifactsForRequest(options.runtime, routeFile, {\n includeRender: true,\n });\n },\n };\n const renderOptions: RenderAppRequestRuntimeOptions = {\n appDir: options.runtime.appDir,\n assetBaseUrl: options.runtime.assetBaseUrl,\n clientScripts: options.runtime.clientScripts,\n clientScriptPreloads: options.runtime.clientScriptPreloads,\n clientStylesByFile: options.runtime.clientStylesByFile,\n clientStyles: options.runtime.clientStyles,\n dehydrateOptions: options.dehydrateOptions,\n importPolicy: {\n ...options.importPolicy,\n allowedSourceDirs: options.runtime.allowedSourceDirs,\n projectRoot: options.runtime.projectRoot,\n },\n request: options.request,\n instrumentation: options.instrumentation,\n logger: options.logger,\n matchedRoute: options.matchedRoute,\n navigationScripts: options.runtime.navigationScripts,\n routeCache: options.routeCache,\n routeMatcher: options.runtime.routeMatcher,\n requestUrl: options.requestUrl,\n routes: options.runtime.routes,\n serverRenderArtifactLoader,\n serverModules: options.runtime.serverModules,\n serverModuleCacheVersion: options.runtime.serverModuleCacheVersion,\n serverSourceFiles: options.runtime.serverSourceFiles,\n serverActionReferencesByFile: options.runtime.serverActionReferencesByFile,\n serverActions: mergeBuiltServerActionOptions(\n options.serverActions,\n options.runtime.serverActionManifest,\n ),\n skipMiddleware: true,\n onResponse: () => undefined,\n ...(options.preload === undefined ? {} : { preload: options.preload }),\n };\n\n return renderOptions;\n}\n\nfunction mergeBuiltServerActionOptions(\n options: AppRouterServerActionOptions | undefined,\n allowedActions:\n | readonly { moduleId: string; exportName: string; inferred?: boolean }[]\n | undefined,\n): AppRouterServerActionOptions | undefined {\n if (allowedActions === undefined) {\n return options;\n }\n\n return {\n ...options,\n allowedActions,\n };\n}\n\nasync function renderAndCachePrerenderWithLock(\n options: RenderBuiltAppRequestOptions & { runtime: BuiltRuntime },\n path: string,\n): Promise<Response> {\n const lockKey =\n options.request.headers.get(\"x-mreact-navigation\") === \"1\" ? `${path}\\0navigation` : path;\n const existing = options.runtime.prerenderLocks.get(lockKey);\n\n if (existing !== undefined) {\n const result = await existing;\n if (result.shareable) {\n return cloneResponse(result.response);\n }\n\n return (await runPrerenderRegeneration(options, path)).response;\n }\n\n const task = runPrerenderRegeneration(options, path);\n options.runtime.prerenderLocks.set(lockKey, task);\n\n try {\n return cloneResponse((await task).response);\n } finally {\n options.runtime.prerenderLocks.delete(lockKey);\n }\n}\n\nasync function runPrerenderRegeneration(\n options: RenderBuiltAppRequestOptions & { runtime: BuiltRuntime },\n path: string,\n): Promise<{ response: Response; shareable: boolean }> {\n const lockKey =\n options.request.headers.get(\"x-mreact-navigation\") === \"1\" ? `${path}\\0navigation` : path;\n const regenerate = async () => {\n const stored = await readPrerenderedRoute(options.runtime, path, options.prerenderStore);\n const storedResponse = prerenderedRouteResponse(stored, options.request);\n\n if (storedResponse !== undefined) {\n return {\n response: storedResponse,\n shareable: true,\n };\n }\n\n // A prerendered entry is replayed to every visitor by path alone, so a\n // render that depended on this visitor's request headers must not become\n // one; it is returned to the caller without being stored. The signal starts\n // closed so that a render which never reports back is not stored either.\n const renderSignals = {\n headerDependent: () => true,\n strictTransportSecurity: () => undefined as string | undefined,\n };\n const response = await renderBuiltDynamicResponse({ ...options, renderSignals });\n\n if (!response.ok) {\n return { response, shareable: false };\n }\n\n // Draining the body finishes a streamed render, so the signal is only\n // final once the whole response has been read.\n const body = await response.text();\n\n if (renderSignals.headerDependent() || isVisitorDependentResponse(response)) {\n return {\n response: htmlResponse(body, {\n headers: response.headers,\n status: response.status,\n }),\n shareable: false,\n };\n }\n\n const navigation = options.request.headers.get(\"x-mreact-navigation\") === \"1\";\n if (navigation && stored === undefined) {\n return {\n response: htmlResponse(body, {\n headers: response.headers,\n status: response.status,\n }),\n shareable: false,\n };\n }\n\n return {\n response: await cacheRegeneratedPrerenderedRoute(\n options.runtime,\n path,\n body,\n response,\n renderSignals.strictTransportSecurity(),\n options.prerenderStore,\n navigation ? stored : undefined,\n ),\n shareable: true,\n };\n };\n\n return options.prerenderStore?.withLock === undefined\n ? await regenerate()\n : await options.prerenderStore.withLock(lockKey, regenerate);\n}\n\nasync function applyBuiltPrerenderInvalidations(\n runtime: BuiltRuntime,\n response: Response,\n store: AppRouterPrerenderStore | undefined,\n): Promise<void> {\n const revalidated = response.headers.get(\"x-mreact-revalidate\");\n\n if (revalidated === null) {\n return;\n }\n\n for (const path of revalidated.split(\",\")) {\n const normalized = normalizeRoutePath(path.trim());\n runtime.prerenderedRoutes.delete(normalized);\n await store?.delete(normalized);\n }\n}\n\nasync function cacheRegeneratedPrerenderedRoute(\n runtime: BuiltRuntime,\n path: string,\n body: string,\n response: Response,\n strictTransportSecurity: string | undefined,\n store: AppRouterPrerenderStore | undefined,\n existing?: BuiltPrerenderedRoute | undefined,\n): Promise<Response> {\n const headers = storedPrerenderedRouteHeaders(response.headers);\n const entry: BuiltPrerenderedRoute =\n existing === undefined\n ? {\n headers,\n html: body,\n schemaVersion: PRERENDERED_ROUTE_SCHEMA_VERSION,\n status: response.status,\n ...(strictTransportSecurity === undefined ? {} : { strictTransportSecurity }),\n }\n : mergePrerenderedNavigationHtml(existing, body);\n if (entry === existing) {\n return htmlResponse(body, {\n headers: response.headers,\n status: response.status,\n });\n }\n runtime.prerenderedRoutes.set(path, entry);\n await store?.set(path, entry);\n\n return htmlResponse(body, {\n headers: response.headers,\n status: response.status,\n });\n}\n\nasync function cloneResponse(response: Response): Promise<Response> {\n return htmlResponse(await response.clone().text(), {\n headers: response.headers,\n status: response.status,\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
package/dist/vite.js CHANGED
@@ -3,6 +3,7 @@ import { dirname, isAbsolute, relative, resolve, sep } from "node:path";
3
3
  import { formatDiagnostic } from "@reckona/mreact-compiler";
4
4
  import { createCompilerModuleContext, transformCompilerModuleContext, } from "@reckona/mreact-compiler/internal";
5
5
  import { isFileLoadingAllowed, normalizePath, } from "vite";
6
+ import { reactiveDevtoolsStubSource } from "./reactive-devtools-stub.js";
6
7
  import { resolveAppRouterProjectOptions, } from "./config.js";
7
8
  import { dehydrateOptionsFromModule } from "./dehydrate-policy.js";
8
9
  import { collectClientRouteReferences, createClientRouteInferenceCache, detectAnchorElementUsage, formatClientRouteInferenceDiagnostic, isClientRouteSource, navigationRuntimeLinkDisabledDiagnostic, resolveNavigationRuntime, } from "./client-route-inference.js";
@@ -234,13 +235,7 @@ export function cell(initial) {
234
235
  }`;
235
236
  }
236
237
  if (id === virtualReactiveDevtoolsId) {
237
- return `export function emitReactiveDevtoolsEvent() {}
238
- export function emitReactiveEffectRunDevtoolsEvent() {}
239
- export function hasReactiveDevtoolsEmitter() { return false; }
240
- export function currentDevtoolsEmitter() { return undefined; }
241
- export function currentReactiveDevtools() { return undefined; }
242
- export function invalidateReactiveDevtoolsCache() {}
243
- export function prepareReactiveEffectRunDevtoolsEvent() { return undefined; }`;
238
+ return reactiveDevtoolsStubSource;
244
239
  }
245
240
  if (id.startsWith(virtualClientPrefix)) {
246
241
  return renderAppRouterClientAsset(project.routesDir, id.slice(virtualClientPrefix.length), {