@moriajs/renderer 0.4.14 → 0.4.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
 
2
- > @moriajs/renderer@0.4.14 build C:\Codes\node\2026\github\moriajs\packages\renderer
2
+ > @moriajs/renderer@0.4.16 build C:\Codes\node\2026\github\moriajs\packages\renderer
3
3
  > tsc
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IACpC,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAEhC,SAAS,EAAE,GAAG,EACd,OAAO,GAAE,aAAkB,GAC5B,OAAO,CAAC,MAAM,CAAC,CA2EjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAEzB,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,OAAO,EAClB,IAAI,CAAC,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAM7E;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCxF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IACpC,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAEhC,SAAS,EAAE,GAAG,EACd,OAAO,GAAE,aAAkB,GAC5B,OAAO,CAAC,MAAM,CAAC,CA2EjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAEzB,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,OAAO,EAClB,IAAI,CAAC,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAM7E;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA2CxF"}
package/dist/index.js CHANGED
@@ -145,8 +145,12 @@ export async function bootstrap(pages) {
145
145
  }
146
146
  // Try to find the component in the glob map
147
147
  // The path usually starts with ./routes/ or similar in the app space
148
- // We try to match the tail of the key with the pagePath
149
- const matchingKey = Object.keys(pages).find(key => key.endsWith(pagePath));
148
+ // We try to match the tail of the key with the pagePath.
149
+ // We sort the keys by length to ensure the shortest (most direct) match is evaluated first,
150
+ // preventing hydration hijacking (e.g. distinguishing index.js from admin/index.js if pagePath is index.js).
151
+ const matchingKey = Object.keys(pages)
152
+ .sort((a, b) => a.length - b.length)
153
+ .find(key => key.endsWith(pagePath));
150
154
  if (matchingKey) {
151
155
  try {
152
156
  const mod = await pages[matchingKey]();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moriajs/renderer",
3
- "version": "0.4.14",
3
+ "version": "0.4.16",
4
4
  "type": "module",
5
5
  "description": "MoriaJS renderer — Mithril.js SSR/CSR hybrid rendering engine",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -186,8 +186,12 @@ export async function bootstrap(pages: Record<string, () => Promise<any>>): Prom
186
186
 
187
187
  // Try to find the component in the glob map
188
188
  // The path usually starts with ./routes/ or similar in the app space
189
- // We try to match the tail of the key with the pagePath
190
- const matchingKey = Object.keys(pages).find(key => key.endsWith(pagePath));
189
+ // We try to match the tail of the key with the pagePath.
190
+ // We sort the keys by length to ensure the shortest (most direct) match is evaluated first,
191
+ // preventing hydration hijacking (e.g. distinguishing index.js from admin/index.js if pagePath is index.js).
192
+ const matchingKey = Object.keys(pages)
193
+ .sort((a, b) => a.length - b.length)
194
+ .find(key => key.endsWith(pagePath));
191
195
 
192
196
  if (matchingKey) {
193
197
  try {