one 1.6.19 → 1.6.20

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 (68) hide show
  1. package/devtools/dev.mjs +6 -0
  2. package/devtools/source-inspector.mjs +5 -0
  3. package/dist/cjs/router/getRoutes.cjs +19 -7
  4. package/dist/cjs/router/getRoutes.js +18 -7
  5. package/dist/cjs/router/getRoutes.js.map +1 -1
  6. package/dist/cjs/router/getRoutes.native.js +53 -24
  7. package/dist/cjs/router/getRoutes.native.js.map +1 -1
  8. package/dist/cjs/router/matchers.cjs +9 -0
  9. package/dist/cjs/router/matchers.js +10 -0
  10. package/dist/cjs/router/matchers.js.map +1 -1
  11. package/dist/cjs/router/matchers.native.js +9 -0
  12. package/dist/cjs/router/matchers.native.js.map +1 -1
  13. package/dist/cjs/router/matchers.test.cjs +29 -0
  14. package/dist/cjs/router/matchers.test.js +29 -0
  15. package/dist/cjs/router/matchers.test.js.map +1 -1
  16. package/dist/cjs/router/matchers.test.native.js +29 -0
  17. package/dist/cjs/router/matchers.test.native.js.map +1 -1
  18. package/dist/cjs/utils/getPathnameFromFilePath.cjs +1 -1
  19. package/dist/cjs/utils/getPathnameFromFilePath.js +1 -1
  20. package/dist/cjs/utils/getPathnameFromFilePath.js.map +1 -1
  21. package/dist/cjs/utils/getPathnameFromFilePath.native.js +3 -1
  22. package/dist/cjs/utils/getPathnameFromFilePath.native.js.map +1 -1
  23. package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +4 -2
  24. package/dist/cjs/vite/plugins/SSRCSSPlugin.js +4 -2
  25. package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
  26. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +4 -2
  27. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  28. package/dist/esm/router/getRoutes.js +19 -7
  29. package/dist/esm/router/getRoutes.js.map +1 -1
  30. package/dist/esm/router/getRoutes.mjs +20 -8
  31. package/dist/esm/router/getRoutes.mjs.map +1 -1
  32. package/dist/esm/router/getRoutes.native.js +54 -25
  33. package/dist/esm/router/getRoutes.native.js.map +1 -1
  34. package/dist/esm/router/matchers.js +10 -0
  35. package/dist/esm/router/matchers.js.map +1 -1
  36. package/dist/esm/router/matchers.mjs +9 -1
  37. package/dist/esm/router/matchers.mjs.map +1 -1
  38. package/dist/esm/router/matchers.native.js +9 -1
  39. package/dist/esm/router/matchers.native.js.map +1 -1
  40. package/dist/esm/router/matchers.test.js +30 -0
  41. package/dist/esm/router/matchers.test.js.map +1 -1
  42. package/dist/esm/router/matchers.test.mjs +30 -1
  43. package/dist/esm/router/matchers.test.mjs.map +1 -1
  44. package/dist/esm/router/matchers.test.native.js +30 -1
  45. package/dist/esm/router/matchers.test.native.js.map +1 -1
  46. package/dist/esm/utils/getPathnameFromFilePath.js +1 -1
  47. package/dist/esm/utils/getPathnameFromFilePath.js.map +1 -1
  48. package/dist/esm/utils/getPathnameFromFilePath.mjs +1 -1
  49. package/dist/esm/utils/getPathnameFromFilePath.mjs.map +1 -1
  50. package/dist/esm/utils/getPathnameFromFilePath.native.js +3 -1
  51. package/dist/esm/utils/getPathnameFromFilePath.native.js.map +1 -1
  52. package/dist/esm/vite/plugins/SSRCSSPlugin.js +4 -2
  53. package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
  54. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +4 -2
  55. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
  56. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +4 -2
  57. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  58. package/package.json +9 -9
  59. package/src/router/getRoutes.ts +46 -5
  60. package/src/router/matchers.test.ts +44 -0
  61. package/src/router/matchers.ts +35 -0
  62. package/src/utils/getPathnameFromFilePath.ts +4 -1
  63. package/src/vite/plugins/SSRCSSPlugin.ts +4 -2
  64. package/types/router/getRoutes.d.ts.map +1 -1
  65. package/types/router/matchers.d.ts +16 -0
  66. package/types/router/matchers.d.ts.map +1 -1
  67. package/types/utils/getPathnameFromFilePath.d.ts.map +1 -1
  68. package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
@@ -1,7 +1,7 @@
1
1
  import Path from "node:path";
2
2
  function getPathnameFromFilePath(inputPath, params = {}, strict = !1, options = {}) {
3
3
  const path = inputPath.replace(/\+(spa|ssg|ssr|api)\.tsx?$/, ""),
4
- dirname = Path.dirname(path).replace(/\([^/]+\)/gi, "").replace(/\[([^\]]+)\]/g, ":$1"),
4
+ dirname = Path.dirname(path).split("/").map(segment => segment.replace(/\+(api|ssg|ssr|spa)$/, "")).join("/").replace(/\([^/]+\)/gi, "").replace(/\[([^\]]+)\]/g, ":$1"),
5
5
  file = Path.basename(path),
6
6
  fileName = options.preserveExtensions ? file : file.replace(/\.[a-z]+$/, "");
7
7
  function paramsError(part) {
@@ -1 +1 @@
1
- {"version":3,"names":["Path","getPathnameFromFilePath","inputPath","params","strict","options","path","replace","dirname","file","basename","fileName","preserveExtensions","paramsError","part","Error","JSON","stringify","nameWithParams","includeIndex","startsWith","split","map","found","slice","length","join"],"sources":["../../../src/utils/getPathnameFromFilePath.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AAEV,SAASC,wBACdC,SAAA,EACAC,MAAA,GAAS,CAAC,GACVC,MAAA,GAAS,IACTC,OAAA,GAAoE,CAAC,GACrE;EACA,MAAMC,IAAA,GAAOJ,SAAA,CAAUK,OAAA,CAAQ,8BAA8B,EAAE;IAEzDC,OAAA,GAAUR,IAAA,CAAKQ,OAAA,CAAQF,IAAI,EAC9BC,OAAA,CAAQ,eAAe,EAAE,EACzBA,OAAA,CAAQ,iBAAiB,KAAK;IAC3BE,IAAA,GAAOT,IAAA,CAAKU,QAAA,CAASJ,IAAI;IACzBK,QAAA,GAAWN,OAAA,CAAQO,kBAAA,GAAqBH,IAAA,GAAOA,IAAA,CAAKF,OAAA,CAAQ,aAAa,EAAE;EAEjF,SAASM,YAAYC,IAAA,EAAc;IACjC,MAAM,IAAIC,KAAA,CACR;AAAA;AAAA,gBAEUT,IAAI;AAAA,gBACJQ,IAAI;AAAA,oBACAH,QAAQ;AAAA;AAAA;AAAA,EAG1BK,IAAA,CAAKC,SAAA,CAAUd,MAAA,EAAQ,MAAM,CAAC,CAAC,EAC7B;EACF;EAEA,MAAMe,cAAA,IAAkB,MAAM;IAC5B,IAAIP,QAAA,KAAa,WAAW,CAACN,OAAA,CAAQc,YAAA,EACnC,OAAO;IAET,IAAIR,QAAA,CAASS,UAAA,CAAW,MAAM,GAAG;MAC/B,MAAMN,IAAA,GAAOH,QAAA,CAASJ,OAAA,CAAQ,QAAQ,EAAE,EAAEA,OAAA,CAAQ,KAAK,EAAE;MACzD,IAAI,CAACJ,MAAA,CAAOW,IAAI,GAAG;QACjB,IAAIV,MAAA,EACF,MAAMS,WAAA,CAAYC,IAAI;QAExB,OAAO;MACT;MACA,OAAO,IAAIX,MAAA,CAAOW,IAAI,CAAC;IACzB;IACA,OAAO,IAAIH,QAAA,CACRU,KAAA,CAAM,GAAG,EACTC,GAAA,CAAKR,IAAA,IAAS;MACb,IAAIA,IAAA,CAAK,CAAC,MAAM,KAAK;QACnB,MAAMS,KAAA,GAAQpB,MAAA,CAAOW,IAAA,CAAKU,KAAA,CAAM,GAAGV,IAAA,CAAKW,MAAA,GAAS,CAAC,CAAC;QACnD,IAAI,CAACF,KAAA,EAAO;UACV,IAAInB,MAAA,EACF,MAAMS,WAAA,CAAYC,IAAI;UAGxB,OAAO,MAAMA,IAAA,CAAKP,OAAA,CAAQ,KAAK,EAAE,EAAEA,OAAA,CAAQ,KAAK,EAAE;QACpD;QACA,OAAOgB,KAAA;MACT;MACA,OAAOT,IAAA;IACT,CAAC,EACAY,IAAA,CAAK,GAAG,CAAC;EACd,GAAG;EAGH,OAAO,GAAGlB,OAAO,GAAGU,cAAc,GAAGX,OAAA,CAAQ,WAAW,GAAG;AAC7D","ignoreList":[]}
1
+ {"version":3,"names":["Path","getPathnameFromFilePath","inputPath","params","strict","options","path","replace","dirname","split","map","segment","join","file","basename","fileName","preserveExtensions","paramsError","part","Error","JSON","stringify","nameWithParams","includeIndex","startsWith","found","slice","length"],"sources":["../../../src/utils/getPathnameFromFilePath.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AAEV,SAASC,wBACdC,SAAA,EACAC,MAAA,GAAS,CAAC,GACVC,MAAA,GAAS,IACTC,OAAA,GAAoE,CAAC,GACrE;EACA,MAAMC,IAAA,GAAOJ,SAAA,CAAUK,OAAA,CAAQ,8BAA8B,EAAE;IAEzDC,OAAA,GAAUR,IAAA,CAAKQ,OAAA,CAAQF,IAAI,EAC9BG,KAAA,CAAM,GAAG,EACTC,GAAA,CAAKC,OAAA,IAAYA,OAAA,CAAQJ,OAAA,CAAQ,wBAAwB,EAAE,CAAC,EAC5DK,IAAA,CAAK,GAAG,EACRL,OAAA,CAAQ,eAAe,EAAE,EACzBA,OAAA,CAAQ,iBAAiB,KAAK;IAC3BM,IAAA,GAAOb,IAAA,CAAKc,QAAA,CAASR,IAAI;IACzBS,QAAA,GAAWV,OAAA,CAAQW,kBAAA,GAAqBH,IAAA,GAAOA,IAAA,CAAKN,OAAA,CAAQ,aAAa,EAAE;EAEjF,SAASU,YAAYC,IAAA,EAAc;IACjC,MAAM,IAAIC,KAAA,CACR;AAAA;AAAA,gBAEUb,IAAI;AAAA,gBACJY,IAAI;AAAA,oBACAH,QAAQ;AAAA;AAAA;AAAA,EAG1BK,IAAA,CAAKC,SAAA,CAAUlB,MAAA,EAAQ,MAAM,CAAC,CAAC,EAC7B;EACF;EAEA,MAAMmB,cAAA,IAAkB,MAAM;IAC5B,IAAIP,QAAA,KAAa,WAAW,CAACV,OAAA,CAAQkB,YAAA,EACnC,OAAO;IAET,IAAIR,QAAA,CAASS,UAAA,CAAW,MAAM,GAAG;MAC/B,MAAMN,IAAA,GAAOH,QAAA,CAASR,OAAA,CAAQ,QAAQ,EAAE,EAAEA,OAAA,CAAQ,KAAK,EAAE;MACzD,IAAI,CAACJ,MAAA,CAAOe,IAAI,GAAG;QACjB,IAAId,MAAA,EACF,MAAMa,WAAA,CAAYC,IAAI;QAExB,OAAO;MACT;MACA,OAAO,IAAIf,MAAA,CAAOe,IAAI,CAAC;IACzB;IACA,OAAO,IAAIH,QAAA,CACRN,KAAA,CAAM,GAAG,EACTC,GAAA,CAAKQ,IAAA,IAAS;MACb,IAAIA,IAAA,CAAK,CAAC,MAAM,KAAK;QACnB,MAAMO,KAAA,GAAQtB,MAAA,CAAOe,IAAA,CAAKQ,KAAA,CAAM,GAAGR,IAAA,CAAKS,MAAA,GAAS,CAAC,CAAC;QACnD,IAAI,CAACF,KAAA,EAAO;UACV,IAAIrB,MAAA,EACF,MAAMa,WAAA,CAAYC,IAAI;UAGxB,OAAO,MAAMA,IAAA,CAAKX,OAAA,CAAQ,KAAK,EAAE,EAAEA,OAAA,CAAQ,KAAK,EAAE;QACpD;QACA,OAAOkB,KAAA;MACT;MACA,OAAOP,IAAA;IACT,CAAC,EACAN,IAAA,CAAK,GAAG,CAAC;EACd,GAAG;EAGH,OAAO,GAAGJ,OAAO,GAAGc,cAAc,GAAGf,OAAA,CAAQ,WAAW,GAAG;AAC7D","ignoreList":[]}
@@ -4,7 +4,9 @@ function getPathnameFromFilePath(inputPath) {
4
4
  strict = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1,
5
5
  options = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {},
6
6
  path = inputPath.replace(/\+(spa|ssg|ssr|api)\.tsx?$/, ""),
7
- dirname = Path.dirname(path).replace(/\([^/]+\)/gi, "").replace(/\[([^\]]+)\]/g, ":$1"),
7
+ dirname = Path.dirname(path).split("/").map(function (segment) {
8
+ return segment.replace(/\+(api|ssg|ssr|spa)$/, "");
9
+ }).join("/").replace(/\([^/]+\)/gi, "").replace(/\[([^\]]+)\]/g, ":$1"),
8
10
  file = Path.basename(path),
9
11
  fileName = options.preserveExtensions ? file : file.replace(/\.[a-z]+$/, "");
10
12
  function paramsError(part) {
@@ -1 +1 @@
1
- {"version":3,"names":["Path","getPathnameFromFilePath","inputPath","params","arguments","length","strict","options","path","replace","dirname","file","basename","fileName","preserveExtensions","paramsError","part","Error","JSON","stringify","nameWithParams","includeIndex","startsWith","split","map","part2","found","slice","join"],"sources":["../../../src/utils/getPathnameFromFilePath.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AAEV,SAASC,wBACdC,SAAA,EACA;EAIA,IAAAC,MAAM,GAAOC,SAAA,CAAUC,MAAA,GAAQ,KAAAD,SAAA,iBAAgCA,SAEzD,MAAU;IAAKE,MAAA,GAAQF,SAC1B,CAAAC,MAAQ,QAAAD,SACR,QAAQ,SAAAA,SAAiB,EAAK,IAC3B;IAAAG,OAAY,GAAAH,SAAS,CAAIC,MACzB,QAAWD,SAAQ,iBAAAA,SAAqB,CAAO,KAAK;IAAAI,IAAQ,GAAAN,SAAA,CAAaO,OAAE;IAAAC,OAAA,GAAAV,IAAA,CAAAU,OAAA,CAAAF,IAAA,EAAAC,OAAA,oBAAAA,OAAA;IAAAE,IAAA,GAAAX,IAAA,CAAAY,QAAA,CAAAJ,IAAA;IAAAK,QAAA,GAAAN,OAAA,CAAAO,kBAAA,GAAAH,IAAA,GAAAA,IAAA,CAAAF,OAAA;EAEjF,SAASM,YAAYC,IAAA,EAAc;IACjC,MAAM,IAAIC,KAAA;AAAA;AACR,gBAAAT,IAAA;AAAA,gBAEUQ,IAAI;AAAA,oBACAH,QAAA;AAAA;AACQ;AAAA,EAAAK,IAAA,CAAAC,SAAA,CAAAhB,MAAA;EAG1B;EAA+B,IAC7BiB,cAAA;IACF,IAAAP,QAAA,iBAAAN,OAAA,CAAAc,YAAA,EAEA,OAAM;IACJ,IAAIR,QAAA,CAAAS,UAAa,OAAY;MAC3B,IAAAN,IAAO,GAAAH,QAAA,CAAAJ,OAAA,aAAAA,OAAA;MAET,IAAI,CAAAN,MAAS,CAAAa,IAAA;QACX,IAAMV,MAAA,EACF,MAACS,WAAc,CAAAC,IAAA;QACjB,OAAI;MACF;MAEF,WAAOb,MAAA,CAAAa,IAAA;IAAA;IAET,WAAOH,QAAI,CAAOU,KAAK,MAAAC,GAAA,WAAAC,KAAA;MACzB,IAAAA,KAAA;QACA,IAAOC,KAAI,GAAAvB,MACR,CAAAsB,KAAM,CAAGE,KACT,CAAI,CAAC,EAAAF,KAAA,CAAApB,MAAS;QACb,IAAI,CAAAqB,KAAM;UACR,IAAMpB,MAAA,EACF,MAACS,WAAO,CAAAU,KAAA;UACV,OAAI,MAAAA,KAAA,CAAAhB,OAAA,UAAAA,OAAA;QACF;QAGF,OAAAiB,KAAO;MAA2C;MAEpD,OAAAD,KAAO;IAAA,EACT,CAAAG,IAAA;EACA;EAAO,OAER,GAAKlB,OAAI,GAAAU,cAAA,GAAAX,OAAA;AAAA;AAId,SACFR,uBAAA","ignoreList":[]}
1
+ {"version":3,"names":["Path","getPathnameFromFilePath","inputPath","params","arguments","length","strict","options","path","replace","dirname","split","map","segment","join","file","basename","fileName","preserveExtensions","paramsError","part","Error","JSON","stringify","nameWithParams","includeIndex","startsWith","part2","found","slice"],"sources":["../../../src/utils/getPathnameFromFilePath.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AAEV,SAASC,wBACdC,SAAA,EACA;EAIA,IAAAC,MAAM,GAAOC,SAAA,CAAUC,MAAA,GAAQ,KAAAD,SAAA,iBAAgCA,SAEzD,MAAU;IAAKE,MAAA,GAAQF,SAC1B,CAAMC,MACN,GAAI,CAAC,IAAAD,SAAY,QAAQ,SAAQA,SAAA;IAAAG,OAA2B,GAC5DH,SACA,CAAAC,MAAQ,QAAAD,SAAiB,EACzB,WAAQ,IAAAA,SAAA,CAAiB,KAAK;IAC3BI,IAAA,GAAON,SAAK,CAAAO,OAAa,6BACN;IAAAC,OAAqB,GAAAV,IAAO,CAAAU,OAAK,CAAAF,IAAQ,EAAAG,KAAA,MAAaC,GAAE,WAAAC,OAAA;MAEjF,OAASA,OAAA,CAAAJ,OAAY,uBAAc;IACjC,GAAAK,IAAA,CAAM,IAAI,CAAAL,OAAA,oBAAAA,OAAA;IAAAM,IAAA,GAAAf,IAAA,CAAAgB,QAAA,CAAAR,IAAA;IAAAS,QAAA,GAAAV,OAAA,CAAAW,kBAAA,GAAAH,IAAA,GAAAA,IAAA,CAAAN,OAAA;EAAA,SACRU,YAAAC,IAAA;IAAA,UAAAC,KAAA;AAAA;AAEc,gBACJb,IAAI;AAAA,gBAAAY,IACA;AAAQ,oBAAAH,QAAA;AAAA;AAAA;AAGK,EAAAK,IAC7B,CAAAC,SAAA,CAAApB,MAAA;EACF;EAEA,IAAAqB,cAAM,eAAwB;IAC5B,IAAIP,QAAA,KAAa,WAAW,CAACV,OAAA,CAAQkB,YAAA,EACnC,OAAO;IAET,IAAIR,QAAA,CAASS,UAAA,CAAW,MAAM,GAAG;MAC/B,IAAAN,IAAM,GAAAH,QAAO,CAAAR,OAAS,OAAQ,IAAQ,EAAEA,OAAE,IAAQ,IAAK;MACvD,IAAI,CAACN,MAAA,CAAOiB,IAAI,GAAG;QACjB,IAAId,MAAA,EACF,MAAMa,WAAA,CAAYC,IAAI;QAExB,OAAO;MACT;MACA,OAAO,IAAIjB,MAAA,CAAOiB,IAAI,CAAC;IACzB;IACA,OAAO,IAAIH,QAAA,CACRN,KAAA,CAAM,GAAG,EACTC,GAAA,CAAI,UAACe,KAAS;MACb,IAAIA,KAAK,CAAC,OAAM,KAAK;QACnB,IAAAC,KAAM,GAAAzB,MAAQ,CAAAwB,KAAO,CAAAE,KAAK,EAAM,EAAAF,KAAG,CAAKtB,MAAA,GAAS,CAAC,CAAC;QACnD,IAAI,CAACuB,KAAA,EAAO;UACV,IAAItB,MAAA,EACF,MAAMa,WAAA,CAAYQ,KAAI;UAGxB,OAAO,MAAMA,KAAK,CAAAlB,OAAQ,MAAK,EAAE,CAAE,CAAAA,OAAQ,MAAK,EAAE;QACpD;QACA,OAAOmB,KAAA;MACT;MACA,OAAOD,KAAA;IACT,CAAC,EACAb,IAAA,CAAK,GAAG,CAAC;EACd,EAAG;EAGH,OAAO,GAAGJ,OAAO,GAAGc,cAAc,GAAGf,OAAA,CAAQ,WAAW,GAAG;AAC7D","ignoreList":[]}
@@ -32,7 +32,9 @@ function SSRCSSPlugin(pluginOpts) {
32
32
  handler: async () => [
33
33
  {
34
34
  tag: "link",
35
- injectTo: "head",
35
+ // prepend so SSR CSS comes BEFORE individual style tags injected by JS
36
+ // this ensures individual styles (later in DOM) win in CSS cascade
37
+ injectTo: "head-prepend",
36
38
  attrs: {
37
39
  rel: "stylesheet",
38
40
  href: VIRTUAL_SSR_CSS_HREF,
@@ -48,7 +50,7 @@ function SSRCSSPlugin(pluginOpts) {
48
50
  `
49
51
  import { createHotContext } from "/@vite/client";
50
52
  const hot = createHotContext("/__clear_ssr_css");
51
- hot.on("vite:afterUpdate", () => {
53
+ hot.on("vite:beforeUpdate", () => {
52
54
  document
53
55
  .querySelectorAll("[data-ssr-css]")
54
56
  .forEach(node => node.remove());
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/vite/plugins/SSRCSSPlugin.ts"],
4
- "mappings": "AACA,SAAS,uBAAuB,4BAA4B;AAIrD,SAAS,aAAa,YAA2C;AACtE,MAAI;AAEJ,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,gBAAgB,SAAS;AACvB,eAAS,SAGT,OAAO,YAAY,IAAI,OAAO,KAAK,KAAK,SAAS;AAC/C,YAAI,IAAI,KAAK,SAAS,oBAAoB,GAAG;AAC3C,2BAAiB,QAAQ,OAAO,wBAAwB,SAAS;AAEjE,gBAAM,OAAO,MAAM,aAAa,QAAQ,WAAW,OAAO;AAE1D,cAAI,UAAU,gBAAgB,UAAU,GACxC,IAAI,UAAU,iBAAiB,UAAU,GACzC,IAAI,UAAU,QAAQ,GAAG,GACzB,IAAI,MAAM,IAAI,GACd,IAAI,IAAI;AACR;AAAA,QACF;AACA,aAAK;AAAA,MACP,CAAC;AAAA,IACH;AAAA;AAAA;AAAA,IAIA,UAAU,QAAQ,WAAW,UAAU;AACrC,aAAO,OAAO,WAAW,qBAAqB,IAAI,OAAO,SAAS;AAAA,IACpE;AAAA,IAEA,MAAM,KAAK,IAAI,UAAU;AACvB,UAAI,GAAG,WAAW,OAAO,qBAAqB,GAAG;AAC/C,cAAM,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,oBAAoB;AACrD,YAAI,OAAO,MAAM,aAAa,QAAQ,WAAW,OAAO;AACxD,eAAK,IAAI,aAAa,IAAI,QAAQ,MAChC,OAAO,kBAAkB,KAAK,UAAU,IAAI,CAAC,KAExC;AAAA,MACT;AAAA,IAGF;AAAA;AAAA,IAGA,oBAAoB;AAAA,MAClB,SAAS,YACA;AAAA,QACL;AAAA,UACE,KAAK;AAAA,UACL,UAAU;AAAA,UACV,OAAO;AAAA,YACL,KAAK;AAAA,YACL,MAAM;AAAA,YACN,gBAAgB;AAAA,UAClB;AAAA,QACF;AAAA,QAEA;AAAA,UACE,KAAK;AAAA,UACL,UAAU;AAAA,UACV,OAAO,EAAE,MAAM,SAAS;AAAA,UACxB;AAAA;AAAA,YAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QASrB;AAAA,MACF;AAAA,IAEJ;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,QAAuB,IAAY;AAC3D,QAAM,MAAM,OAAO,YAAY,cAAc,EAAE;AAC/C,EAAI,OACF,OAAO,YAAY,iBAAiB,GAAG;AAE3C;AAMA,eAAsB,aAAa,QAAuB,SAAmB;AAC3E,QAAM,EAAE,UAAU,IAAI,MAAM,OAAO,cAAc,GAE3C,OAAO,MAAM,iBAAiB,QAAQ,OAAO;AA6BnD,MAAI,OA5BU,MAAM,QAAQ;AAAA,IAC1B,KAAK,IAAI,OAAO,QAAQ;AAEtB,YAAM,QADM,MAAM,OAAO,iBAAiB,MAAM,SAAS,IACvC,QAAQ,IACpB,SAAS,qBAAqB,GAAG;AAEvC,UAAI;AACF,cAAM,SAAS,OAAO,KAAK,IAAI,GACzB,UAAU,IAAI;AAAA,UAClB,OAAO;AAAA,UACP,OAAO;AAAA,UACP,OAAO;AAAA,QACT,GAEM,YAAY,UAAU;AAAA,UAC1B,UAAU;AAAA,UACV,MAAM;AAAA,UACN,GAAG,OAAO,OAAO,IAAI;AAAA,QACvB,CAAC,EAAE,KAAK,SAAS;AAEjB,eAAO,CAAC,QAAQ,SAAS;AAAA,MAC3B,SAAS,KAAK;AACZ,uBAAQ,MAAM,2DAA2D,GAAG,EAAE,GACvE,CAAC,QAAQ,IAAI;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH,GAEgB,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK;AAAA;AAAA,CAAM;AAElD,MAAI;AAEF,UAAM,SAAS,OAAO,KAAK,GAAG,GACxB,UAAU,IAAI,WAAW,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAClF,UAAM,UAAU;AAAA,MACd,UAAU;AAAA,MACV,MAAM;AAAA,MACN,GAAG,OAAO,OAAO,IAAI;AAAA,IACvB,CAAC,EAAE,KAAK,SAAS;AAAA,EACnB,QAAc;AACZ,YAAQ,MAAM,+DAA+D;AAAA,EAC/E;AAEA,SAAO;AACT;AAEA,eAAe,iBACb,QACA,SACmB;AACnB,QAAM,UAAU,oBAAI,IAAY;AAEhC,iBAAe,SAAS,KAAa;AACnC,QAAI,IAAI,SAAS,UAAU,EAAG;AAC9B,UAAM,CAAC,EAAE,EAAE,IAAI,MAAM,OAAO,YAAY,WAAW,GAAG;AACtD,QAAI,QAAQ,IAAI,EAAE;AAChB;AAEF,YAAQ,IAAI,EAAE;AACd,UAAM,MAAM,OAAO,YAAY,cAAc,EAAE;AAC/C,IAAK,OAGL,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,eAAe,EAAE,IAAI,CAAC,aAAa,SAAS,SAAS,GAAG,CAAC,CAAC;AAAA,EACtF;AAGA,eAAM,QAAQ,IAAI,QAAQ,IAAI,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAGhE,MAAM,QAAQ,IAAI,QAAQ,IAAI,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC,GAG9C,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM,YAAY,CAAC;AAC7D;AAGA,MAAM,eAAe;",
4
+ "mappings": "AACA,SAAS,uBAAuB,4BAA4B;AAIrD,SAAS,aAAa,YAA2C;AACtE,MAAI;AAEJ,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,gBAAgB,SAAS;AACvB,eAAS,SAGT,OAAO,YAAY,IAAI,OAAO,KAAK,KAAK,SAAS;AAC/C,YAAI,IAAI,KAAK,SAAS,oBAAoB,GAAG;AAC3C,2BAAiB,QAAQ,OAAO,wBAAwB,SAAS;AAEjE,gBAAM,OAAO,MAAM,aAAa,QAAQ,WAAW,OAAO;AAE1D,cAAI,UAAU,gBAAgB,UAAU,GACxC,IAAI,UAAU,iBAAiB,UAAU,GACzC,IAAI,UAAU,QAAQ,GAAG,GACzB,IAAI,MAAM,IAAI,GACd,IAAI,IAAI;AACR;AAAA,QACF;AACA,aAAK;AAAA,MACP,CAAC;AAAA,IACH;AAAA;AAAA;AAAA,IAIA,UAAU,QAAQ,WAAW,UAAU;AACrC,aAAO,OAAO,WAAW,qBAAqB,IAAI,OAAO,SAAS;AAAA,IACpE;AAAA,IAEA,MAAM,KAAK,IAAI,UAAU;AACvB,UAAI,GAAG,WAAW,OAAO,qBAAqB,GAAG;AAC/C,cAAM,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,oBAAoB;AACrD,YAAI,OAAO,MAAM,aAAa,QAAQ,WAAW,OAAO;AACxD,eAAK,IAAI,aAAa,IAAI,QAAQ,MAChC,OAAO,kBAAkB,KAAK,UAAU,IAAI,CAAC,KAExC;AAAA,MACT;AAAA,IAGF;AAAA;AAAA,IAGA,oBAAoB;AAAA,MAClB,SAAS,YACA;AAAA,QACL;AAAA,UACE,KAAK;AAAA;AAAA;AAAA,UAGL,UAAU;AAAA,UACV,OAAO;AAAA,YACL,KAAK;AAAA,YACL,MAAM;AAAA,YACN,gBAAgB;AAAA,UAClB;AAAA,QACF;AAAA,QAEA;AAAA,UACE,KAAK;AAAA,UACL,UAAU;AAAA,UACV,OAAO,EAAE,MAAM,SAAS;AAAA,UACxB;AAAA;AAAA,YAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QASrB;AAAA,MACF;AAAA,IAEJ;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,QAAuB,IAAY;AAC3D,QAAM,MAAM,OAAO,YAAY,cAAc,EAAE;AAC/C,EAAI,OACF,OAAO,YAAY,iBAAiB,GAAG;AAE3C;AAMA,eAAsB,aAAa,QAAuB,SAAmB;AAC3E,QAAM,EAAE,UAAU,IAAI,MAAM,OAAO,cAAc,GAE3C,OAAO,MAAM,iBAAiB,QAAQ,OAAO;AA6BnD,MAAI,OA5BU,MAAM,QAAQ;AAAA,IAC1B,KAAK,IAAI,OAAO,QAAQ;AAEtB,YAAM,QADM,MAAM,OAAO,iBAAiB,MAAM,SAAS,IACvC,QAAQ,IACpB,SAAS,qBAAqB,GAAG;AAEvC,UAAI;AACF,cAAM,SAAS,OAAO,KAAK,IAAI,GACzB,UAAU,IAAI;AAAA,UAClB,OAAO;AAAA,UACP,OAAO;AAAA,UACP,OAAO;AAAA,QACT,GAEM,YAAY,UAAU;AAAA,UAC1B,UAAU;AAAA,UACV,MAAM;AAAA,UACN,GAAG,OAAO,OAAO,IAAI;AAAA,QACvB,CAAC,EAAE,KAAK,SAAS;AAEjB,eAAO,CAAC,QAAQ,SAAS;AAAA,MAC3B,SAAS,KAAK;AACZ,uBAAQ,MAAM,2DAA2D,GAAG,EAAE,GACvE,CAAC,QAAQ,IAAI;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH,GAEgB,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK;AAAA;AAAA,CAAM;AAElD,MAAI;AAEF,UAAM,SAAS,OAAO,KAAK,GAAG,GACxB,UAAU,IAAI,WAAW,OAAO,QAAQ,OAAO,YAAY,OAAO,UAAU;AAClF,UAAM,UAAU;AAAA,MACd,UAAU;AAAA,MACV,MAAM;AAAA,MACN,GAAG,OAAO,OAAO,IAAI;AAAA,IACvB,CAAC,EAAE,KAAK,SAAS;AAAA,EACnB,QAAc;AACZ,YAAQ,MAAM,+DAA+D;AAAA,EAC/E;AAEA,SAAO;AACT;AAEA,eAAe,iBACb,QACA,SACmB;AACnB,QAAM,UAAU,oBAAI,IAAY;AAEhC,iBAAe,SAAS,KAAa;AACnC,QAAI,IAAI,SAAS,UAAU,EAAG;AAC9B,UAAM,CAAC,EAAE,EAAE,IAAI,MAAM,OAAO,YAAY,WAAW,GAAG;AACtD,QAAI,QAAQ,IAAI,EAAE;AAChB;AAEF,YAAQ,IAAI,EAAE;AACd,UAAM,MAAM,OAAO,YAAY,cAAc,EAAE;AAC/C,IAAK,OAGL,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,eAAe,EAAE,IAAI,CAAC,aAAa,SAAS,SAAS,GAAG,CAAC,CAAC;AAAA,EACtF;AAGA,eAAM,QAAQ,IAAI,QAAQ,IAAI,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAGhE,MAAM,QAAQ,IAAI,QAAQ,IAAI,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC,GAG9C,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM,YAAY,CAAC;AAC7D;AAGA,MAAM,eAAe;",
5
5
  "names": []
6
6
  }
@@ -31,7 +31,9 @@ function SSRCSSPlugin(pluginOpts) {
31
31
  transformIndexHtml: {
32
32
  handler: async () => [{
33
33
  tag: "link",
34
- injectTo: "head",
34
+ // prepend so SSR CSS comes BEFORE individual style tags injected by JS
35
+ // this ensures individual styles (later in DOM) win in CSS cascade
36
+ injectTo: "head-prepend",
35
37
  attrs: {
36
38
  rel: "stylesheet",
37
39
  href: VIRTUAL_SSR_CSS_HREF,
@@ -47,7 +49,7 @@ function SSRCSSPlugin(pluginOpts) {
47
49
  `
48
50
  import { createHotContext } from "/@vite/client";
49
51
  const hot = createHotContext("/__clear_ssr_css");
50
- hot.on("vite:afterUpdate", () => {
52
+ hot.on("vite:beforeUpdate", () => {
51
53
  document
52
54
  .querySelectorAll("[data-ssr-css]")
53
55
  .forEach(node => node.remove());
@@ -1 +1 @@
1
- {"version":3,"names":["VIRTUAL_SSR_CSS_ENTRY","VIRTUAL_SSR_CSS_HREF","SSRCSSPlugin","pluginOpts","server","name","apply","configureServer","server_","middlewares","use","req","res","next","url","includes","invalidateModule","code","collectStyle","entries","setHeader","write","end","resolveId","source","_importer","_options","startsWith","load","id","URL","slice","searchParams","has","JSON","stringify","transformIndexHtml","handler","tag","injectTo","attrs","rel","href","type","children","mod","moduleGraph","getModuleById","transform","urls","collectStyleUrls","out","Promise","all","map","transformRequest","prefix","buffer","Buffer","from","codeOut","Uint8Array","byteOffset","byteLength","processed","filename","config","css","lightningcss","toString","err","console","error","flat","filter","Boolean","join","visited","Set","traverse","resolveUrl","add","importedModules","childMod","e","match","CSS_LANGS_RE"],"sources":["../../../../src/vite/plugins/SSRCSSPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["VIRTUAL_SSR_CSS_ENTRY","VIRTUAL_SSR_CSS_HREF","SSRCSSPlugin","pluginOpts","server","name","apply","configureServer","server_","middlewares","use","req","res","next","url","includes","invalidateModule","code","collectStyle","entries","setHeader","write","end","resolveId","source","_importer","_options","startsWith","load","id","URL","slice","searchParams","has","JSON","stringify","transformIndexHtml","handler","tag","injectTo","attrs","rel","href","type","children","mod","moduleGraph","getModuleById","transform","urls","collectStyleUrls","out","Promise","all","map","transformRequest","prefix","buffer","Buffer","from","codeOut","Uint8Array","byteOffset","byteLength","processed","filename","config","css","lightningcss","toString","err","console","error","flat","filter","Boolean","join","visited","Set","traverse","resolveUrl","add","importedModules","childMod","e","match","CSS_LANGS_RE"],"sources":["../../../../src/vite/plugins/SSRCSSPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -33,7 +33,9 @@ function SSRCSSPlugin(pluginOpts) {
33
33
  handler: async function () {
34
34
  return [{
35
35
  tag: "link",
36
- injectTo: "head",
36
+ // prepend so SSR CSS comes BEFORE individual style tags injected by JS
37
+ // this ensures individual styles (later in DOM) win in CSS cascade
38
+ injectTo: "head-prepend",
37
39
  attrs: {
38
40
  rel: "stylesheet",
39
41
  href: VIRTUAL_SSR_CSS_HREF,
@@ -49,7 +51,7 @@ function SSRCSSPlugin(pluginOpts) {
49
51
  `
50
52
  import { createHotContext } from "/@vite/client";
51
53
  const hot = createHotContext("/__clear_ssr_css");
52
- hot.on("vite:afterUpdate", () => {
54
+ hot.on("vite:beforeUpdate", () => {
53
55
  document
54
56
  .querySelectorAll("[data-ssr-css]")
55
57
  .forEach(node => node.remove());
@@ -1 +1 @@
1
- {"version":3,"names":["VIRTUAL_SSR_CSS_ENTRY","VIRTUAL_SSR_CSS_HREF","SSRCSSPlugin","pluginOpts","server","name","apply","configureServer","server_","middlewares","use","req","res","next","_req_url","url","includes","invalidateModule","code","collectStyle","entries","setHeader","write","end","resolveId","source","_importer","_options","startsWith","load","id","URL","slice","searchParams","has","JSON","stringify","transformIndexHtml","handler","tag","injectTo","attrs","rel","href","type","children","mod","moduleGraph","getModuleById","transform","urls","collectStyleUrls","codes","Promise","all","map","transformRequest","prefix","buffer2","Buffer","from","codeOut2","Uint8Array","buffer","byteOffset","byteLength","processed","filename","config","css","lightningcss","toString","err","console","error","out","flat","filter","Boolean","join","codeOut","visited","Set","traverse","resolveUrl","add","importedModules","childMod"],"sources":["../../../../src/vite/plugins/SSRCSSPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["VIRTUAL_SSR_CSS_ENTRY","VIRTUAL_SSR_CSS_HREF","SSRCSSPlugin","pluginOpts","server","name","apply","configureServer","server_","middlewares","use","req","res","next","_req_url","url","includes","invalidateModule","code","collectStyle","entries","setHeader","write","end","resolveId","source","_importer","_options","startsWith","load","id","URL","slice","searchParams","has","JSON","stringify","transformIndexHtml","handler","tag","injectTo","attrs","rel","href","type","children","mod","moduleGraph","getModuleById","transform","urls","collectStyleUrls","codes","Promise","all","map","transformRequest","prefix","buffer2","Buffer","from","codeOut2","Uint8Array","buffer","byteOffset","byteLength","processed","filename","config","css","lightningcss","toString","err","console","error","out","flat","filter","Boolean","join","codeOut","visited","Set","traverse","resolveUrl","add","importedModules","childMod"],"sources":["../../../../src/vite/plugins/SSRCSSPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "one",
3
- "version": "1.6.19",
3
+ "version": "1.6.20",
4
4
  "license": "BSD-3-Clause",
5
5
  "sideEffects": [
6
6
  "setup.mjs",
@@ -154,17 +154,17 @@
154
154
  "@react-navigation/routers": "~7.5.1",
155
155
  "@swc/core": "^1.14.0",
156
156
  "@ungap/structured-clone": "^1.2.0",
157
- "@vxrn/color-scheme": "1.6.19",
158
- "@vxrn/compiler": "1.6.19",
159
- "@vxrn/resolve": "1.6.19",
160
- "@vxrn/tslib-lite": "1.6.19",
161
- "@vxrn/use-isomorphic-layout-effect": "1.6.19",
162
- "@vxrn/vite-plugin-metro": "1.6.19",
157
+ "@vxrn/color-scheme": "1.6.20",
158
+ "@vxrn/compiler": "1.6.20",
159
+ "@vxrn/resolve": "1.6.20",
160
+ "@vxrn/tslib-lite": "1.6.20",
161
+ "@vxrn/use-isomorphic-layout-effect": "1.6.20",
162
+ "@vxrn/vite-plugin-metro": "1.6.20",
163
163
  "babel-dead-code-elimination": "1.0.10",
164
164
  "babel-plugin-module-resolver": "^5.0.2",
165
165
  "citty": "^0.1.6",
166
166
  "core-js": "^3.38.1",
167
- "create-vxrn": "1.6.19",
167
+ "create-vxrn": "1.6.20",
168
168
  "escape-string-regexp": "^5.0.0",
169
169
  "expo-linking": "~8.0.8",
170
170
  "expo-modules-core": "~3.0.24",
@@ -189,7 +189,7 @@
189
189
  "use-latest-callback": "^0.2.3",
190
190
  "vite": "^7.1.12",
191
191
  "vite-tsconfig-paths": "^6.0.5",
192
- "vxrn": "1.6.19",
192
+ "vxrn": "1.6.20",
193
193
  "ws": "^8.18.0",
194
194
  "xxhashjs": "^0.2.2"
195
195
  },
@@ -3,6 +3,7 @@ import { getPageExport } from '../utils/getPageExport'
3
3
  import type { One } from '../vite/types'
4
4
  import {
5
5
  matchArrayGroupName,
6
+ matchDirectoryRenderMode,
6
7
  matchDynamicName,
7
8
  matchGroupName,
8
9
  matchInterceptPrefix,
@@ -29,6 +30,8 @@ type DirectoryNode = {
29
30
  subdirectories: Map<string, DirectoryNode>
30
31
  /** Slot directories (@modal, @sidebar, etc.) for parallel routes */
31
32
  slots: Map<string, DirectoryNode>
33
+ /** Render mode for this directory (e.g., from dashboard+ssr or api+api) */
34
+ renderMode?: One.RouteRenderMode | 'api'
32
35
  }
33
36
 
34
37
  const validPlatforms = new Set(['android', 'ios', 'native', 'web'])
@@ -99,7 +102,20 @@ function getDirectoryTree(contextModule: One.RouteContext, options: Options) {
99
102
 
100
103
  isValid = true
101
104
 
102
- const meta = getFileMeta(filePath, options)
105
+ // First pass: determine parent render mode by traversing directories
106
+ let parentRenderMode: One.RouteRenderMode | 'api' | undefined
107
+ const pathParts = filePath.replace(/^\.\//, '').split('/')
108
+ const directoryParts = pathParts.slice(0, -1)
109
+
110
+ for (const part of directoryParts) {
111
+ const dirRenderMode = matchDirectoryRenderMode(part)
112
+ if (dirRenderMode) {
113
+ // Inner folders override outer folders
114
+ parentRenderMode = dirRenderMode.renderMode
115
+ }
116
+ }
117
+
118
+ const meta = getFileMeta(filePath, options, parentRenderMode)
103
119
 
104
120
  // This is a file that should be ignored. e.g maybe it has an invalid platform?
105
121
  if (meta.specificity < 0) {
@@ -168,8 +184,12 @@ function getDirectoryTree(contextModule: One.RouteContext, options: Options) {
168
184
  }
169
185
  directory = slotDirectory
170
186
  } else {
187
+ // Check for directory render mode suffix (e.g., dashboard+ssr)
188
+ const dirRenderMode = matchDirectoryRenderMode(part)
189
+ const dirName = dirRenderMode?.name ?? part
190
+
171
191
  // Handle regular subdirectory
172
- let subDirectory = directory.subdirectories.get(part)
192
+ let subDirectory = directory.subdirectories.get(dirName)
173
193
 
174
194
  // Create any missing subdirectories
175
195
  if (!subDirectory) {
@@ -177,8 +197,9 @@ function getDirectoryTree(contextModule: One.RouteContext, options: Options) {
177
197
  files: new Map(),
178
198
  subdirectories: new Map(),
179
199
  slots: new Map(),
200
+ renderMode: dirRenderMode?.renderMode,
180
201
  }
181
- directory.subdirectories.set(part, subDirectory)
202
+ directory.subdirectories.set(dirName, subDirectory)
182
203
  }
183
204
 
184
205
  directory = subDirectory
@@ -491,7 +512,11 @@ function flattenSlotSubdirectory(
491
512
  return routes
492
513
  }
493
514
 
494
- function getFileMeta(key: string, options: Options) {
515
+ function getFileMeta(
516
+ key: string,
517
+ options: Options,
518
+ parentRenderMode?: One.RouteRenderMode | 'api'
519
+ ) {
495
520
  // Remove the leading `./`
496
521
  key = key.replace(/^\.\//, '')
497
522
 
@@ -505,7 +530,23 @@ function getFileMeta(key: string, options: Options) {
505
530
 
506
531
  const [_fullname, renderModeFound] =
507
532
  filename.match(/\+(api|ssg|ssr|spa)\.(\w+\.)?[jt]sx?$/) || []
508
- const renderMode = renderModeFound as 'api' | One.RouteRenderMode | undefined
533
+ const fileRenderMode = renderModeFound as 'api' | One.RouteRenderMode | undefined
534
+
535
+ // Hierarchical render mode resolution:
536
+ // 1. File suffix (highest priority)
537
+ // 2. Parent folder suffix
538
+ // 3. Falls back to getDefaultRenderMode() later (vite config)
539
+ const renderMode = fileRenderMode ?? parentRenderMode
540
+
541
+ // Strip render mode suffixes from directory names in the route
542
+ // e.g., "dashboard+ssr/analytics" -> "dashboard/analytics"
543
+ route = route
544
+ .split('/')
545
+ .map((segment) => {
546
+ const dirRenderMode = matchDirectoryRenderMode(segment)
547
+ return dirRenderMode ? dirRenderMode.name : segment
548
+ })
549
+ .join('/')
509
550
 
510
551
  if (
511
552
  filenameWithoutExtensions.startsWith('(') &&
@@ -3,6 +3,7 @@ import {
3
3
  getNameFromFilePath,
4
4
  matchArrayGroupName,
5
5
  matchDeepDynamicRouteName,
6
+ matchDirectoryRenderMode,
6
7
  matchDynamicName,
7
8
  matchGroupName,
8
9
  stripGroupSegmentsFromPath,
@@ -128,3 +129,46 @@ describe(matchArrayGroupName, () => {
128
129
  expect(matchArrayGroupName('(leading)/(foo,bar)/((fruit),apple)')).toEqual('foo,bar')
129
130
  })
130
131
  })
132
+
133
+ describe(matchDirectoryRenderMode, () => {
134
+ it('should match directory names with render mode suffixes', () => {
135
+ expect(matchDirectoryRenderMode('dashboard+ssr')).toEqual({
136
+ name: 'dashboard',
137
+ renderMode: 'ssr',
138
+ })
139
+ expect(matchDirectoryRenderMode('blog+ssg')).toEqual({
140
+ name: 'blog',
141
+ renderMode: 'ssg',
142
+ })
143
+ expect(matchDirectoryRenderMode('admin+spa')).toEqual({
144
+ name: 'admin',
145
+ renderMode: 'spa',
146
+ })
147
+ expect(matchDirectoryRenderMode('api-routes+api')).toEqual({
148
+ name: 'api-routes',
149
+ renderMode: 'api',
150
+ })
151
+ })
152
+
153
+ it('should not match directory names without render mode suffixes', () => {
154
+ expect(matchDirectoryRenderMode('dashboard')).toEqual(undefined)
155
+ expect(matchDirectoryRenderMode('blog')).toEqual(undefined)
156
+ expect(matchDirectoryRenderMode('admin')).toEqual(undefined)
157
+ })
158
+
159
+ it('should not match invalid render modes', () => {
160
+ expect(matchDirectoryRenderMode('dashboard+invalid')).toEqual(undefined)
161
+ expect(matchDirectoryRenderMode('blog+csr')).toEqual(undefined)
162
+ })
163
+
164
+ it('should handle directory names with hyphens and underscores', () => {
165
+ expect(matchDirectoryRenderMode('my-dashboard+ssr')).toEqual({
166
+ name: 'my-dashboard',
167
+ renderMode: 'ssr',
168
+ })
169
+ expect(matchDirectoryRenderMode('my_blog+ssg')).toEqual({
170
+ name: 'my_blog',
171
+ renderMode: 'ssg',
172
+ })
173
+ })
174
+ })
@@ -1,3 +1,5 @@
1
+ import type { One } from '../vite/types'
2
+
1
3
  /** Match `[page]` -> `page` or `[...page]` -> `page` with deep flag */
2
4
  const dynamicNameRe = /^\[([^[\]]+?)\]$/
3
5
 
@@ -95,6 +97,39 @@ export function isTypedRoute(name: string) {
95
97
  )
96
98
  }
97
99
 
100
+ // ============================================
101
+ // Directory Render Modes
102
+ // ============================================
103
+
104
+ /** Match directory render mode suffixes: dashboard+ssr, blog+ssg, etc. */
105
+ const directoryRenderModeRe = /^(.+)\+(api|ssg|ssr|spa)$/
106
+
107
+ export interface DirectoryRenderModeMatch {
108
+ /** Directory name without the render mode suffix */
109
+ name: string
110
+ /** The render mode for this directory */
111
+ renderMode: One.RouteRenderMode | 'api'
112
+ }
113
+
114
+ /**
115
+ * Match directory render mode suffixes
116
+ *
117
+ * Examples:
118
+ * - "dashboard+ssr" -> { name: "dashboard", renderMode: "ssr" }
119
+ * - "blog+ssg" -> { name: "blog", renderMode: "ssg" }
120
+ * - "admin+spa" -> { name: "admin", renderMode: "spa" }
121
+ */
122
+ export function matchDirectoryRenderMode(
123
+ name: string
124
+ ): DirectoryRenderModeMatch | undefined {
125
+ const match = name.match(directoryRenderModeRe)
126
+ if (!match) return undefined
127
+ return {
128
+ name: match[1],
129
+ renderMode: match[2] as One.RouteRenderMode | 'api',
130
+ }
131
+ }
132
+
98
133
  // ============================================
99
134
  // Parallel Routes & Intercepting Routes
100
135
  // ============================================
@@ -7,8 +7,11 @@ export function getPathnameFromFilePath(
7
7
  options: { preserveExtensions?: boolean; includeIndex?: boolean } = {}
8
8
  ) {
9
9
  const path = inputPath.replace(/\+(spa|ssg|ssr|api)\.tsx?$/, '')
10
- // remove groups and convert [param] to :param in dirname
10
+ // remove groups, folder render mode suffixes, and convert [param] to :param in dirname
11
11
  const dirname = Path.dirname(path)
12
+ .split('/')
13
+ .map((segment) => segment.replace(/\+(api|ssg|ssr|spa)$/, ''))
14
+ .join('/')
12
15
  .replace(/\([^/]+\)/gi, '')
13
16
  .replace(/\[([^\]]+)\]/g, ':$1')
14
17
  const file = Path.basename(path)
@@ -55,7 +55,9 @@ export function SSRCSSPlugin(pluginOpts: { entries: string[] }): Plugin {
55
55
  return [
56
56
  {
57
57
  tag: 'link',
58
- injectTo: 'head',
58
+ // prepend so SSR CSS comes BEFORE individual style tags injected by JS
59
+ // this ensures individual styles (later in DOM) win in CSS cascade
60
+ injectTo: 'head-prepend',
59
61
  attrs: {
60
62
  rel: 'stylesheet',
61
63
  href: VIRTUAL_SSR_CSS_HREF,
@@ -70,7 +72,7 @@ export function SSRCSSPlugin(pluginOpts: { entries: string[] }): Plugin {
70
72
  children: /* js */ `
71
73
  import { createHotContext } from "/@vite/client";
72
74
  const hot = createHotContext("/__clear_ssr_css");
73
- hot.on("vite:afterUpdate", () => {
75
+ hot.on("vite:beforeUpdate", () => {
74
76
  document
75
77
  .querySelectorAll("[data-ssr-css]")
76
78
  .forEach(node => node.remove());
@@ -1 +1 @@
1
- {"version":3,"file":"getRoutes.d.ts","sourceRoot":"","sources":["../../src/router/getRoutes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAUxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAc,MAAM,SAAS,CAAA;AAEvE,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAaD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,aAAa,EAAE,GAAG,CAAC,YAAY,EAC/B,OAAO,GAAE,OAAY,GACpB,SAAS,GAAG,IAAI,CAelB;AA6iBD,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,YAM9C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAC5B,GAAG,CAAC,MAAM,CAAC,CA0Bb;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAmBxE"}
1
+ {"version":3,"file":"getRoutes.d.ts","sourceRoot":"","sources":["../../src/router/getRoutes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAWxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAc,MAAM,SAAS,CAAA;AAEvE,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAeD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,aAAa,EAAE,GAAG,CAAC,YAAY,EAC/B,OAAO,GAAE,OAAY,GACpB,SAAS,GAAG,IAAI,CAelB;AAmlBD,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,YAM9C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAC5B,GAAG,CAAC,MAAM,CAAC,CA0Bb;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAmBxE"}
@@ -1,3 +1,4 @@
1
+ import type { One } from '../vite/types';
1
2
  export interface DynamicNameMatch {
2
3
  name: string;
3
4
  deep: boolean;
@@ -29,6 +30,21 @@ export declare function stripInvisibleSegmentsFromPath(path: string): string;
29
30
  * - .d.ts files (type definition files)
30
31
  */
31
32
  export declare function isTypedRoute(name: string): boolean;
33
+ export interface DirectoryRenderModeMatch {
34
+ /** Directory name without the render mode suffix */
35
+ name: string;
36
+ /** The render mode for this directory */
37
+ renderMode: One.RouteRenderMode | 'api';
38
+ }
39
+ /**
40
+ * Match directory render mode suffixes
41
+ *
42
+ * Examples:
43
+ * - "dashboard+ssr" -> { name: "dashboard", renderMode: "ssr" }
44
+ * - "blog+ssg" -> { name: "blog", renderMode: "ssg" }
45
+ * - "admin+spa" -> { name: "admin", renderMode: "spa" }
46
+ */
47
+ export declare function matchDirectoryRenderMode(name: string): DirectoryRenderModeMatch | undefined;
32
48
  /** Match @modal -> 'modal', @sidebar -> 'sidebar' */
33
49
  export declare function matchSlotName(name: string): string | undefined;
34
50
  /** Check if a directory name is a slot directory */
@@ -1 +1 @@
1
- {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/router/matchers.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;CACd;AAED,yGAAyG;AACzG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAS3E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED,yBAAyB;AACzB,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,+BAA+B;AAC/B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,sBAE/C;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED,0CAA0C;AAC1C,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9D;AAGD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU/D;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,WAMxC;AASD,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAiBhF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D"}
1
+ {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/router/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAKxC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;CACd;AAED,yGAAyG;AACzG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAS3E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED,yBAAyB;AACzB,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,+BAA+B;AAC/B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,sBAE/C;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED,0CAA0C;AAC1C,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9D;AAGD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU/D;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,WAMxC;AASD,MAAM,WAAW,wBAAwB;IACvC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAA;IACZ,yCAAyC;IACzC,UAAU,EAAE,GAAG,CAAC,eAAe,GAAG,KAAK,CAAA;CACxC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,GACX,wBAAwB,GAAG,SAAS,CAOtC;AASD,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAiBhF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPathnameFromFilePath.d.ts","sourceRoot":"","sources":["../../src/utils/getPathnameFromFilePath.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,KAAK,EACX,MAAM,UAAQ,EACd,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,UA0DvE"}
1
+ {"version":3,"file":"getPathnameFromFilePath.d.ts","sourceRoot":"","sources":["../../src/utils/getPathnameFromFilePath.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,KAAK,EACX,MAAM,UAAQ,EACd,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,UA6DvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"SSRCSSPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/SSRCSSPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAKjD,wBAAgB,YAAY,CAAC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CA8EtE;AAaD,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,mBAgD1E"}
1
+ {"version":3,"file":"SSRCSSPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/SSRCSSPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAKjD,wBAAgB,YAAY,CAAC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,MAAM,CAgFtE;AAaD,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,mBAgD1E"}