kiru 0.51.6 → 0.51.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/constants.d.ts +2 -1
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +2 -1
  4. package/dist/constants.js.map +1 -1
  5. package/dist/globalContext.d.ts +4 -0
  6. package/dist/globalContext.d.ts.map +1 -1
  7. package/dist/globalContext.js +2 -0
  8. package/dist/globalContext.js.map +1 -1
  9. package/dist/hmr.d.ts.map +1 -1
  10. package/dist/hmr.js +6 -22
  11. package/dist/hmr.js.map +1 -1
  12. package/dist/router/context.d.ts +13 -0
  13. package/dist/router/context.d.ts.map +1 -1
  14. package/dist/router/context.js.map +1 -1
  15. package/dist/router/fileRouterController.d.ts +4 -1
  16. package/dist/router/fileRouterController.d.ts.map +1 -1
  17. package/dist/router/fileRouterController.js +113 -93
  18. package/dist/router/fileRouterController.js.map +1 -1
  19. package/dist/router/link.js +1 -1
  20. package/dist/router/link.js.map +1 -1
  21. package/dist/router/pageConfig.js +1 -1
  22. package/dist/router/pageConfig.js.map +1 -1
  23. package/dist/router/server/index.js +4 -4
  24. package/dist/router/server/index.js.map +1 -1
  25. package/dist/router/types.internal.d.ts +17 -2
  26. package/dist/router/types.internal.d.ts.map +1 -1
  27. package/dist/router/utils/index.d.ts.map +1 -1
  28. package/dist/router/utils/index.js +17 -4
  29. package/dist/router/utils/index.js.map +1 -1
  30. package/dist/signals/watch.d.ts +0 -3
  31. package/dist/signals/watch.d.ts.map +1 -1
  32. package/dist/signals/watch.js +0 -12
  33. package/dist/signals/watch.js.map +1 -1
  34. package/dist/types.dom.d.ts +3 -2
  35. package/dist/types.dom.d.ts.map +1 -1
  36. package/package.json +1 -1
  37. package/src/constants.ts +2 -0
  38. package/src/globalContext.ts +6 -0
  39. package/src/hmr.ts +7 -23
  40. package/src/router/context.ts +17 -1
  41. package/src/router/fileRouterController.ts +144 -128
  42. package/src/router/link.ts +1 -1
  43. package/src/router/pageConfig.ts +1 -1
  44. package/src/router/server/index.ts +4 -4
  45. package/src/router/types.internal.ts +21 -2
  46. package/src/router/utils/index.ts +21 -4
  47. package/src/signals/watch.ts +0 -13
  48. package/src/types.dom.ts +3 -1
@@ -1,4 +1,4 @@
1
- export { $SIGNAL, $CONTEXT, $CONTEXT_PROVIDER, $FRAGMENT, $KIRU_ERROR, $HMR_ACCEPT, $MEMO, $ERROR_BOUNDARY, $SUSPENSE_THROW, CONSECUTIVE_DIRTY_LIMIT, PREFETCHED_DATA_EVENT, EVENT_PREFIX_REGEX, FLAG_UPDATE, FLAG_PLACEMENT, FLAG_DELETION, FLAG_STATIC_DOM, FLAG_MEMO, FLAG_NOOP, FLAG_DIRTY, };
1
+ export { $SIGNAL, $CONTEXT, $CONTEXT_PROVIDER, $FRAGMENT, $KIRU_ERROR, $HMR_ACCEPT, $MEMO, $ERROR_BOUNDARY, $SUSPENSE_THROW, $DEV_FILE_LINK, CONSECUTIVE_DIRTY_LIMIT, PREFETCHED_DATA_EVENT, EVENT_PREFIX_REGEX, FLAG_UPDATE, FLAG_PLACEMENT, FLAG_DELETION, FLAG_STATIC_DOM, FLAG_MEMO, FLAG_NOOP, FLAG_DIRTY, };
2
2
  export { voidElements, svgTags, booleanAttributes, snakeCaseAttributes };
3
3
  declare const $SIGNAL: unique symbol;
4
4
  declare const $CONTEXT: unique symbol;
@@ -9,6 +9,7 @@ declare const $HMR_ACCEPT: unique symbol;
9
9
  declare const $MEMO: unique symbol;
10
10
  declare const $ERROR_BOUNDARY: unique symbol;
11
11
  declare const $SUSPENSE_THROW: unique symbol;
12
+ declare const $DEV_FILE_LINK: unique symbol;
12
13
  declare const CONSECUTIVE_DIRTY_LIMIT = 50;
13
14
  declare const PREFETCHED_DATA_EVENT = "kiru:prefetched";
14
15
  declare const FLAG_UPDATE: number;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,WAAW,EACX,KAAK,EACL,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,GACX,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AAExE,QAAA,MAAM,OAAO,eAA4B,CAAA;AACzC,QAAA,MAAM,QAAQ,eAA6B,CAAA;AAC3C,QAAA,MAAM,iBAAiB,eAAqC,CAAA;AAC5D,QAAA,MAAM,SAAS,eAA8B,CAAA;AAC7C,QAAA,MAAM,WAAW,eAA2B,CAAA;AAC5C,QAAA,MAAM,WAAW,eAA+B,CAAA;AAChD,QAAA,MAAM,KAAK,eAA0B,CAAA;AACrC,QAAA,MAAM,eAAe,eAAmC,CAAA;AACxD,QAAA,MAAM,eAAe,eAAmC,CAAA;AAExD,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,qBAAqB,oBAAoB,CAAA;AAE/C,QAAA,MAAM,WAAW,QAAS,CAAA;AAC1B,QAAA,MAAM,cAAc,QAAS,CAAA;AAC7B,QAAA,MAAM,aAAa,QAAS,CAAA;AAC5B,QAAA,MAAM,eAAe,QAAS,CAAA;AAC9B,QAAA,MAAM,SAAS,QAAS,CAAA;AACxB,QAAA,MAAM,SAAS,QAAS,CAAA;AACxB,QAAA,MAAM,UAAU,QAAS,CAAA;AAEzB,QAAA,MAAM,kBAAkB,QAAU,CAAA;AAElC,QAAA,MAAM,YAAY,aAgBhB,CAAA;AAEF,QAAA,MAAM,OAAO,aAiDX,CAAA;AAEF,QAAA,MAAM,iBAAiB,aAkCrB,CAAA;AAEF,QAAA,MAAM,mBAAmB,qBA6EvB,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,WAAW,EACX,KAAK,EACL,eAAe,EACf,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,UAAU,GACX,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AAExE,QAAA,MAAM,OAAO,eAA4B,CAAA;AACzC,QAAA,MAAM,QAAQ,eAA6B,CAAA;AAC3C,QAAA,MAAM,iBAAiB,eAAqC,CAAA;AAC5D,QAAA,MAAM,SAAS,eAA8B,CAAA;AAC7C,QAAA,MAAM,WAAW,eAA2B,CAAA;AAC5C,QAAA,MAAM,WAAW,eAA+B,CAAA;AAChD,QAAA,MAAM,KAAK,eAA0B,CAAA;AACrC,QAAA,MAAM,eAAe,eAAmC,CAAA;AACxD,QAAA,MAAM,eAAe,eAAmC,CAAA;AACxD,QAAA,MAAM,cAAc,eAAiC,CAAA;AAErD,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,qBAAqB,oBAAoB,CAAA;AAE/C,QAAA,MAAM,WAAW,QAAS,CAAA;AAC1B,QAAA,MAAM,cAAc,QAAS,CAAA;AAC7B,QAAA,MAAM,aAAa,QAAS,CAAA;AAC5B,QAAA,MAAM,eAAe,QAAS,CAAA;AAC9B,QAAA,MAAM,SAAS,QAAS,CAAA;AACxB,QAAA,MAAM,SAAS,QAAS,CAAA;AACxB,QAAA,MAAM,UAAU,QAAS,CAAA;AAEzB,QAAA,MAAM,kBAAkB,QAAU,CAAA;AAElC,QAAA,MAAM,YAAY,aAgBhB,CAAA;AAEF,QAAA,MAAM,OAAO,aAiDX,CAAA;AAEF,QAAA,MAAM,iBAAiB,aAkCrB,CAAA;AAEF,QAAA,MAAM,mBAAmB,qBA6EvB,CAAA"}
package/dist/constants.js CHANGED
@@ -1,4 +1,4 @@
1
- export { $SIGNAL, $CONTEXT, $CONTEXT_PROVIDER, $FRAGMENT, $KIRU_ERROR, $HMR_ACCEPT, $MEMO, $ERROR_BOUNDARY, $SUSPENSE_THROW, CONSECUTIVE_DIRTY_LIMIT, PREFETCHED_DATA_EVENT, EVENT_PREFIX_REGEX, FLAG_UPDATE, FLAG_PLACEMENT, FLAG_DELETION, FLAG_STATIC_DOM, FLAG_MEMO, FLAG_NOOP, FLAG_DIRTY, };
1
+ export { $SIGNAL, $CONTEXT, $CONTEXT_PROVIDER, $FRAGMENT, $KIRU_ERROR, $HMR_ACCEPT, $MEMO, $ERROR_BOUNDARY, $SUSPENSE_THROW, $DEV_FILE_LINK, CONSECUTIVE_DIRTY_LIMIT, PREFETCHED_DATA_EVENT, EVENT_PREFIX_REGEX, FLAG_UPDATE, FLAG_PLACEMENT, FLAG_DELETION, FLAG_STATIC_DOM, FLAG_MEMO, FLAG_NOOP, FLAG_DIRTY, };
2
2
  export { voidElements, svgTags, booleanAttributes, snakeCaseAttributes };
3
3
  const $SIGNAL = Symbol.for("kiru.signal");
4
4
  const $CONTEXT = Symbol.for("kiru.context");
@@ -9,6 +9,7 @@ const $HMR_ACCEPT = Symbol.for("kiru.hmrAccept");
9
9
  const $MEMO = Symbol.for("kiru.memo");
10
10
  const $ERROR_BOUNDARY = Symbol.for("kiru.errorBoundary");
11
11
  const $SUSPENSE_THROW = Symbol.for("kiru.suspenseThrow");
12
+ const $DEV_FILE_LINK = Symbol.for("kiru.devFileLink");
12
13
  const CONSECUTIVE_DIRTY_LIMIT = 50;
13
14
  const PREFETCHED_DATA_EVENT = "kiru:prefetched";
14
15
  const FLAG_UPDATE = 1 << 1;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { createHMRContext } from "./hmr.js";
2
2
  import { createProfilingContext } from "./profiling.js";
3
+ import type { FileRouterController } from "./router/fileRouterController";
3
4
  import type { AppContext } from "./appContext";
4
5
  import type { Store } from "./store";
5
6
  import type { SWRCache } from "./swr";
@@ -33,6 +34,9 @@ interface KiruGlobalContext {
33
34
  HMRContext?: ReturnType<typeof createHMRContext>;
34
35
  profilingContext?: ReturnType<typeof createProfilingContext>;
35
36
  SWRGlobalCache?: SWRCache;
37
+ fileRouterInstance?: {
38
+ current: FileRouterController | null;
39
+ };
36
40
  }
37
41
  declare function createKiruGlobalContext(): KiruGlobalContext;
38
42
  //# sourceMappingURL=globalContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"globalContext.d.ts","sourceRoot":"","sources":["../src/globalContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,EAAE,uBAAuB,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,CAAA;AAEhF,UAAU,WAAW,CAAC,CAAC;IACrB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IAChC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAuCD,KAAK,GAAG,GACJ;IACE,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,GACD;IACE,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAEL,KAAK,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;AAElC,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,CAAA;IAC3B,IAAI,CAAC,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC9E,EAAE,CAAC,CAAC,SAAS,GAAG,EACd,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,GACnD,IAAI,CAAA;IACP,GAAG,CAAC,CAAC,SAAS,GAAG,EACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,GACpD,IAAI,CAAA;IACP,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;IAChD,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;IAC5D,cAAc,CAAC,EAAE,QAAQ,CAAA;CAC1B;AAED,iBAAS,uBAAuB,IAAI,iBAAiB,CAmDpD"}
1
+ {"version":3,"file":"globalContext.d.ts","sourceRoot":"","sources":["../src/globalContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,EAAE,uBAAuB,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,CAAA;AAEhF,UAAU,WAAW,CAAC,CAAC;IACrB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IAChC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAuCD,KAAK,GAAG,GACJ;IACE,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,GACD;IACE,IAAI,EAAE,SAAS,CAAA;IACf,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAEL,KAAK,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;AAElC,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,CAAA;IAC3B,IAAI,CAAC,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC9E,EAAE,CAAC,CAAC,SAAS,GAAG,EACd,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,GACnD,IAAI,CAAA;IACP,GAAG,CAAC,CAAC,SAAS,GAAG,EACf,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAChB,QAAQ,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,GACpD,IAAI,CAAA;IACP,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;IAChD,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAA;IAC5D,cAAc,CAAC,EAAE,QAAQ,CAAA;IACzB,kBAAkB,CAAC,EAAE;QACnB,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAA;KACrC,CAAA;CACF;AAED,iBAAS,uBAAuB,IAAI,iBAAiB,CAoDpD"}
@@ -1,6 +1,7 @@
1
1
  import { __DEV__ } from "./env.js";
2
2
  import { createHMRContext } from "./hmr.js";
3
3
  import { createProfilingContext } from "./profiling.js";
4
+ import { fileRouterInstance } from "./router/globals.js";
4
5
  export { createKiruGlobalContext };
5
6
  function createReactiveMap() {
6
7
  const map = new Map();
@@ -65,6 +66,7 @@ function createKiruGlobalContext() {
65
66
  globalContext.HMRContext = createHMRContext();
66
67
  globalContext.profilingContext = createProfilingContext();
67
68
  globalContext.stores = createReactiveMap();
69
+ globalContext.fileRouterInstance = fileRouterInstance;
68
70
  }
69
71
  return globalContext;
70
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"globalContext.js","sourceRoot":"","sources":["../src/globalContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"globalContext.js","sourceRoot":"","sources":["../src/globalContext.ts"],"names":[],"mappings":"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"}
package/dist/hmr.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAI5C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,EAAE,IAAI;IAC9B,OAAO,EAAE,MAAM,CAAC,CAAA;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IACzB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,EAAE,IAAI;IACvC,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,CAAA;AACD,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AASzE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAQlC;AAOD,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAgB,gBAAgB;0CAgCD,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC;wBAjBzC,MAAM;;;;;yBAqGd,WAAW;;sBAzGL,MAAM,IAAI;;EAyHpC"}
1
+ {"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAA;AAI5D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,EAAE,IAAI;IAC9B,OAAO,EAAE,MAAM,CAAC,CAAA;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IACzB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,EAAE,IAAI;IACvC,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,CAAA;AACD,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AASzE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAQlC;AAOD,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAgB,gBAAgB;0CAmCD,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC;wBArBzC,MAAM;;;;;yBAsFd,WAAW;;sBA1FL,MAAM,IAAI;;EA0GpC"}
package/dist/hmr.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $HMR_ACCEPT } from "./constants.js";
1
+ import { $HMR_ACCEPT, $DEV_FILE_LINK } from "./constants.js";
2
2
  import { traverseApply } from "./utils/index.js";
3
3
  import { requestUpdate } from "./scheduler.js";
4
4
  export function isGenericHmrAcceptor(thing) {
@@ -15,7 +15,6 @@ export function createHMRContext() {
15
15
  let isModuleReplacementExecution = false;
16
16
  const isReplacement = () => isModuleReplacementExecution;
17
17
  let isWaitingForNextWatchCall = false;
18
- let tmpUnnamedWatchers = [];
19
18
  const onHmrCallbacks = [];
20
19
  const onHmr = (callback) => {
21
20
  onHmrCallbacks.push(callback);
@@ -33,6 +32,9 @@ export function createHMRContext() {
33
32
  else {
34
33
  while (onHmrCallbacks.length)
35
34
  onHmrCallbacks.shift()();
35
+ for (const prevWatcher of mod.unnamedWatchers.splice(0)) {
36
+ prevWatcher.stop();
37
+ }
36
38
  }
37
39
  currentModuleMemory = mod;
38
40
  currentModuleFilePath = filePath;
@@ -44,7 +46,7 @@ export function createHMRContext() {
44
46
  for (const [name, newEntry] of Object.entries(hotVarRegistrationEntries)) {
45
47
  const oldEntry = currentModuleMemory.hotVars.get(name);
46
48
  // @ts-ignore - this is how we tell devtools what file the hotvar is from
47
- newEntry.value.__devtoolsFileLink = newEntry.link;
49
+ newEntry.value[$DEV_FILE_LINK] = newEntry.link;
48
50
  if (typeof newEntry.value === "function") {
49
51
  if (oldEntry?.value) {
50
52
  /**
@@ -81,24 +83,6 @@ export function createHMRContext() {
81
83
  }
82
84
  dirtiedApps.forEach((ctx) => ctx.rootNode && requestUpdate(ctx.rootNode));
83
85
  isModuleReplacementExecution = false;
84
- if (tmpUnnamedWatchers.length) {
85
- let i = 0;
86
- for (; i < tmpUnnamedWatchers.length; i++) {
87
- const newWatcher = tmpUnnamedWatchers[i];
88
- const oldWatcher = currentModuleMemory.unnamedWatchers[i];
89
- if (oldWatcher) {
90
- newWatcher[$HMR_ACCEPT].inject(oldWatcher[$HMR_ACCEPT].provide());
91
- oldWatcher[$HMR_ACCEPT].destroy();
92
- }
93
- currentModuleMemory.unnamedWatchers[i] = newWatcher;
94
- }
95
- for (; i < currentModuleMemory.unnamedWatchers.length; i++) {
96
- const oldWatcher = currentModuleMemory.unnamedWatchers[i];
97
- oldWatcher[$HMR_ACCEPT].destroy();
98
- }
99
- currentModuleMemory.unnamedWatchers.length = tmpUnnamedWatchers.length;
100
- tmpUnnamedWatchers.length = 0;
101
- }
102
86
  currentModuleMemory = null;
103
87
  currentModuleFilePath = null;
104
88
  };
@@ -110,7 +94,7 @@ export function createHMRContext() {
110
94
  return isWaitingForNextWatchCall;
111
95
  },
112
96
  pushWatch(watch) {
113
- tmpUnnamedWatchers.push(watch);
97
+ currentModuleMemory.unnamedWatchers.push(watch);
114
98
  isWaitingForNextWatchCall = false;
115
99
  },
116
100
  };
package/dist/hmr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hmr.js","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmr.js","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,16 @@
1
1
  import type { RouteQuery, RouterState } from "./types.js";
2
+ export interface ReloadOptions {
3
+ /**
4
+ * Trigger a view transition (overrides transition from config)
5
+ * @default false
6
+ */
7
+ transition?: boolean;
8
+ /**
9
+ * Invalidate the cache for the current route
10
+ * @default true
11
+ */
12
+ invalidate?: boolean;
13
+ }
2
14
  export interface FileRouterContextType {
3
15
  /**
4
16
  * Invalidate cached loader data for the given paths
@@ -36,6 +48,7 @@ export interface FileRouterContextType {
36
48
  */
37
49
  reload: (options?: {
38
50
  transition?: boolean;
51
+ invalidate?: boolean;
39
52
  }) => Promise<void>;
40
53
  /**
41
54
  * Set the current query parameters
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/router/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEzD,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACpC;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG;QACnB;;;;WAIG;QACH,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IAED;;;OAGG;IACH,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,KAClD,OAAO,CAAC,IAAI,CAAC,CAAA;IAElB;;OAEG;IACH,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAE5C;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAE7D;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CACtC;AAED,eAAO,MAAM,aAAa,qCAA8C,CAAA;AAKxE,wBAAgB,aAAa,IAAI,qBAAqB,CAErD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/router/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEzD,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACpC;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG;QACnB;;;;WAIG;QACH,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IAED;;;OAGG;IACH,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,KAClD,OAAO,CAAC,IAAI,CAAC,CAAA;IAElB;;OAEG;IACH,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAE5C;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QACjB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,UAAU,CAAC,EAAE,OAAO,CAAA;KACrB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnB;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CACtC;AAED,eAAO,MAAM,aAAa,qCAA8C,CAAA;AAKxE,wBAAgB,aAAa,IAAI,qBAAqB,CAErD"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/router/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAiD9C,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAwB,IAAK,CAAC,CAAA;AACxE,IAAI,OAAO,EAAE,CAAC;IACZ,aAAa,CAAC,WAAW,GAAG,eAAe,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC,aAAa,CAAC,CAAA;AAClC,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/router/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAiE9C,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAwB,IAAK,CAAC,CAAA;AACxE,IAAI,OAAO,EAAE,CAAC;IACZ,aAAa,CAAC,WAAW,GAAG,eAAe,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC,aAAa,CAAC,CAAA;AAClC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { type FileRouterContextType } from "./context.js";
2
2
  import type { FileRouterConfig, PageConfig } from "./types.js";
3
+ import type { DevtoolsInterface } from "./types.internal.js";
3
4
  export declare class FileRouterController {
4
5
  contextValue: FileRouterContextType;
5
6
  private enableTransitions;
@@ -13,15 +14,17 @@ export declare class FileRouterController {
13
14
  private cleanups;
14
15
  private filePathToPageRoute?;
15
16
  private pageRouteToConfig?;
17
+ dev_onPageConfigDefined?: <T extends PageConfig<any>>(fp: string, config: T) => void;
18
+ devtools?: DevtoolsInterface;
16
19
  constructor();
17
20
  init(config: FileRouterConfig): void;
18
- onPageConfigDefined<T extends PageConfig<any>>(fp: string, config: T): void;
19
21
  getChildren(): Kiru.VNode | null;
20
22
  dispose(): void;
21
23
  private loadRoute;
22
24
  private loadRouteData;
23
25
  private invalidate;
24
26
  private navigate;
27
+ private queueScrollManagement;
25
28
  private prefetchRouteModules;
26
29
  private setQuery;
27
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fileRouterController.d.ts","sourceRoot":"","sources":["../../src/router/fileRouterController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGzD,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EAKX,MAAM,YAAY,CAAA;AAqBnB,qBAAa,oBAAoB;IACxB,YAAY,EAAE,qBAAqB,CAAA;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,WAAW,CAIV;IACT,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,mBAAmB,CAAC,CAG3B;IACD,OAAO,CAAC,iBAAiB,CAAC,CAAyB;;IAsE5C,IAAI,CAAC,MAAM,EAAE,gBAAgB;IA6F7B,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IA8DpE,WAAW;IAUX,OAAO;YAYA,SAAS;YA4IT,aAAa;IAmD3B,OAAO,CAAC,UAAU;YAiBJ,QAAQ;YA8BR,oBAAoB;IAuBlC,OAAO,CAAC,QAAQ;CASjB"}
1
+ {"version":3,"file":"fileRouterController.d.ts","sourceRoot":"","sources":["../../src/router/fileRouterController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGxE,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EAKX,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAEV,iBAAiB,EAIlB,MAAM,qBAAqB,CAAA;AAiB5B,qBAAa,oBAAoB;IACxB,YAAY,EAAE,qBAAqB,CAAA;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,mBAAmB,CAAC,CAG3B;IACD,OAAO,CAAC,iBAAiB,CAAC,CAAyB;IAC5C,uBAAuB,CAAC,EAAE,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,EACzD,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,CAAC,KACN,IAAI,CAAA;IACF,QAAQ,CAAC,EAAE,iBAAiB,CAAA;;IAmJ5B,IAAI,CAAC,MAAM,EAAE,gBAAgB;IAmG7B,WAAW;IAUX,OAAO;YAYA,SAAS;YA4IT,aAAa;IAmD3B,OAAO,CAAC,UAAU;YAmBJ,QAAQ;IA4BtB,OAAO,CAAC,qBAAqB;YAWf,oBAAoB;IAuBlC,OAAO,CAAC,QAAQ;CASjB"}
@@ -5,6 +5,7 @@ import { FileRouterDataLoadError } from "./errors.js";
5
5
  import { fileRouterInstance, fileRouterRoute, routerCache } from "./globals.js";
6
6
  import { formatViteImportMap, matchLayouts, matchRoute, match404Route, normalizePrefixPath, parseQuery, wrapWithLayouts, } from "./utils/index.js";
7
7
  import { RouterCache } from "./cache.js";
8
+ import { watch } from "../signals/watch.js";
8
9
  export class FileRouterController {
9
10
  constructor() {
10
11
  this.cleanups = [];
@@ -25,7 +26,9 @@ export class FileRouterController {
25
26
  };
26
27
  const __this = this;
27
28
  this.contextValue = {
28
- invalidate: this.invalidate.bind(this),
29
+ invalidate: (...paths) => {
30
+ this.invalidate(...paths);
31
+ },
29
32
  get state() {
30
33
  return {
31
34
  ...__this.state,
@@ -39,33 +42,97 @@ export class FileRouterController {
39
42
  },
40
43
  navigate: this.navigate.bind(this),
41
44
  prefetchRouteModules: this.prefetchRouteModules.bind(this),
42
- reload: (options) => this.loadRoute(void 0, void 0, options?.transition),
45
+ reload: (options) => {
46
+ if ((options?.invalidate ?? true) &&
47
+ this.invalidate(this.state.pathname)) {
48
+ return Promise.resolve(); // invalidate triggered a reload
49
+ }
50
+ return this.loadRoute(void 0, void 0, options?.transition);
51
+ },
43
52
  setQuery: this.setQuery.bind(this),
44
53
  };
45
54
  if (__DEV__) {
46
55
  this.filePathToPageRoute = new Map();
47
56
  this.pageRouteToConfig = new Map();
57
+ this.dev_onPageConfigDefined = (fp, config) => {
58
+ const existing = this.filePathToPageRoute?.get(fp);
59
+ if (existing === undefined) {
60
+ const route = fileRouterRoute.current;
61
+ if (!route)
62
+ return;
63
+ this.filePathToPageRoute?.set(fp, { route, config });
64
+ return;
65
+ }
66
+ const curPage = this.currentPage.value;
67
+ const loader = config.loader;
68
+ if (curPage?.route === existing.route && loader) {
69
+ const p = this.currentPageProps.value;
70
+ const transition = (loader.mode !== "static" && loader.transition) ??
71
+ this.enableTransitions;
72
+ // Check cache first if caching is enabled
73
+ let cachedData = null;
74
+ if (loader.mode !== "static" && loader.cache) {
75
+ const cacheKey = {
76
+ path: this.state.pathname,
77
+ params: this.state.params,
78
+ query: this.state.query,
79
+ };
80
+ cachedData = routerCache.current.get(cacheKey, loader.cache);
81
+ }
82
+ if (cachedData !== null) {
83
+ // Use cached data immediately - no loading state needed
84
+ const props = {
85
+ ...p,
86
+ data: cachedData.value,
87
+ error: null,
88
+ loading: false,
89
+ };
90
+ handleStateTransition(this.state.signal, transition, () => {
91
+ this.currentPageProps.value = props;
92
+ });
93
+ }
94
+ else {
95
+ // No cached data - show loading state and load data
96
+ const props = {
97
+ ...p,
98
+ loading: true,
99
+ data: null,
100
+ error: null,
101
+ };
102
+ handleStateTransition(this.state.signal, transition, () => {
103
+ this.currentPageProps.value = props;
104
+ });
105
+ this.loadRouteData(config, props, this.state, transition);
106
+ }
107
+ }
108
+ this.pageRouteToConfig?.set(existing.route, config);
109
+ };
110
+ this.devtools = {
111
+ getPages: () => this.pages,
112
+ invalidate: this.invalidate.bind(this),
113
+ navigate: this.navigate.bind(this),
114
+ reload: () => {
115
+ if (this.invalidate(this.state.pathname)) {
116
+ return Promise.resolve(); // invalidate triggered a reload
117
+ }
118
+ return this.loadRoute();
119
+ },
120
+ subscribe: (callback) => {
121
+ const watcher = watch([this.currentPage, this.currentPageProps], callback);
122
+ return () => watcher.stop();
123
+ },
124
+ };
48
125
  }
49
- const handlePopState = () => this.loadRoute();
50
126
  window.addEventListener("popstate", (e) => {
51
- const state = e.state;
52
- if (!isCustomNavigationState(state)) {
53
- this.loadRoute();
54
- return;
55
- }
127
+ e.preventDefault();
128
+ const { pathname: prevPath, hash: prevHash } = this.state;
129
+ const { pathname: nextPath, hash: nextHash } = window.location;
56
130
  this.loadRoute().then(() => {
57
- nextIdle(() => {
58
- if (state.prevHash !== state.nextHash) {
59
- window.location.hash = "";
60
- window.location.hash = state.nextHash;
61
- }
62
- if (!state.nextHash) {
63
- window.scrollTo(0, 0);
64
- }
65
- });
131
+ if (prevHash !== nextHash || prevPath !== nextPath) {
132
+ this.queueScrollManagement(nextHash);
133
+ }
66
134
  });
67
135
  });
68
- this.cleanups.push(() => window.removeEventListener("popstate", handlePopState));
69
136
  }
70
137
  init(config) {
71
138
  const { pages, layouts, dir = "/pages", baseUrl = "/", transition, preloaded, } = config;
@@ -94,14 +161,15 @@ export class FileRouterController {
94
161
  this.layouts = layouts;
95
162
  if (__DEV__) {
96
163
  if (page.config) {
97
- this.onPageConfigDefined(route, page.config);
164
+ this.dev_onPageConfigDefined(route, page.config);
98
165
  }
99
166
  }
100
167
  if (__DEV__) {
101
168
  validateRoutes(this.pages);
102
169
  }
103
170
  const loader = page.config?.loader;
104
- if (loader && loader.mode !== "static" && pageProps.loading === true) {
171
+ if (loader &&
172
+ ((loader.mode !== "static" && pageProps.loading === true) || __DEV__)) {
105
173
  if (cacheData === null) {
106
174
  this.loadRouteData(page.config, pageProps, this.state);
107
175
  }
@@ -113,6 +181,7 @@ export class FileRouterController {
113
181
  error: null,
114
182
  loading: false,
115
183
  };
184
+ // @ts-ignore
116
185
  const transition = loader.transition ?? this.enableTransitions;
117
186
  handleStateTransition(this.state.signal, transition, () => {
118
187
  this.currentPageProps.value = props;
@@ -120,6 +189,7 @@ export class FileRouterController {
120
189
  });
121
190
  }
122
191
  }
192
+ // window.history.scrollRestoration = "manual"
123
193
  }
124
194
  else {
125
195
  this.pages = formatViteImportMap(pages, normalizedDir, normalizedBaseUrl);
@@ -127,62 +197,10 @@ export class FileRouterController {
127
197
  if (__DEV__) {
128
198
  validateRoutes(this.pages);
129
199
  }
200
+ //window.history.scrollRestoration = "manual"
130
201
  this.loadRoute();
131
202
  }
132
203
  }
133
- onPageConfigDefined(fp, config) {
134
- const existing = this.filePathToPageRoute?.get(fp);
135
- if (existing === undefined) {
136
- const route = fileRouterRoute.current;
137
- if (!route)
138
- return;
139
- this.filePathToPageRoute?.set(fp, { route, config });
140
- return;
141
- }
142
- const curPage = this.currentPage.value;
143
- const loader = config.loader;
144
- if (curPage?.route === existing.route && loader) {
145
- const p = this.currentPageProps.value;
146
- const transition = (loader.mode !== "static" && loader.transition) ??
147
- this.enableTransitions;
148
- // Check cache first if caching is enabled
149
- let cachedData = null;
150
- if (loader.mode !== "static" && loader.cache) {
151
- const cacheKey = {
152
- path: this.state.pathname,
153
- params: this.state.params,
154
- query: this.state.query,
155
- };
156
- cachedData = routerCache.current.get(cacheKey, loader.cache);
157
- }
158
- if (cachedData !== null) {
159
- // Use cached data immediately - no loading state needed
160
- const props = {
161
- ...p,
162
- data: cachedData.value,
163
- error: null,
164
- loading: false,
165
- };
166
- handleStateTransition(this.state.signal, transition, () => {
167
- this.currentPageProps.value = props;
168
- });
169
- }
170
- else {
171
- // No cached data - show loading state and load data
172
- const props = {
173
- ...p,
174
- loading: true,
175
- data: null,
176
- error: null,
177
- };
178
- handleStateTransition(this.state.signal, transition, () => {
179
- this.currentPageProps.value = props;
180
- });
181
- this.loadRouteData(config, props, this.state, transition);
182
- }
183
- }
184
- this.pageRouteToConfig?.set(existing.route, config);
185
- }
186
204
  getChildren() {
187
205
  const page = this.currentPage.value;
188
206
  if (!page)
@@ -357,29 +375,37 @@ See https://kirujs.dev/docs/api/file-router#404 for more information.`);
357
375
  const shouldRefresh = routerCache.current.pathMatchesPattern(currentPath, paths);
358
376
  if (shouldRefresh) {
359
377
  // Refresh the current page to get fresh data
360
- this.loadRoute(currentPath, {}, this.enableTransitions);
378
+ this.loadRoute();
379
+ return true;
361
380
  }
381
+ return false;
362
382
  }
363
383
  async navigate(path, options) {
364
- const { pathname: prevPath, hash: prevHash } = window.location;
365
384
  const url = new URL(path, "http://localhost");
366
- const { pathname: nextPath, hash: nextHash } = url;
385
+ const { hash: prevHash, pathname: prevPath } = this.state;
386
+ const { hash: nextHash, pathname: nextPath } = url;
367
387
  if (options?.replace) {
368
388
  window.history.replaceState({}, "", path);
369
389
  }
370
390
  else {
371
391
  window.history.pushState({}, "", path);
372
392
  }
373
- window.dispatchEvent(new PopStateEvent("popstate", {
374
- state: {
375
- ["kiru-router-event"]: true,
376
- prevPath,
377
- nextPath,
378
- prevHash,
379
- nextHash,
380
- transition: options?.transition ?? this.enableTransitions,
381
- },
382
- }));
393
+ this.loadRoute(void 0, void 0, options?.transition ?? this.enableTransitions).then(() => {
394
+ if (prevHash !== nextHash || prevPath !== nextPath) {
395
+ this.queueScrollManagement(nextHash);
396
+ }
397
+ });
398
+ }
399
+ queueScrollManagement(nextHash) {
400
+ nextIdle(() => {
401
+ let nextEl = null;
402
+ if (nextHash && (nextEl = document.getElementById(nextHash.slice(1)))) {
403
+ nextEl.scrollIntoView();
404
+ }
405
+ else {
406
+ window.scrollTo(0, 0);
407
+ }
408
+ });
383
409
  }
384
410
  async prefetchRouteModules(path) {
385
411
  const url = new URL(path, "http://localhost");
@@ -447,7 +473,7 @@ function validateRoutes(pageMap) {
447
473
  let warning = "[kiru/router]: Route conflicts detected:\n";
448
474
  warning += routeConflicts
449
475
  .map(([route1, route2]) => {
450
- return ` - "${route1.absolutePath}" conflicts with "${route2.absolutePath}"\n`;
476
+ return ` - "${route1.filePath}" conflicts with "${route2.filePath}"\n`;
451
477
  })
452
478
  .join("");
453
479
  warning += "Routes are ordered by specificity (higher specificity wins)";
@@ -490,10 +516,4 @@ function routesConflict(route1, route2) {
490
516
  }
491
517
  return true;
492
518
  }
493
- function isCustomNavigationState(state) {
494
- return (typeof state === "object" &&
495
- state !== null &&
496
- "kiru-router-event" in state &&
497
- state["kiru-router-event"] === true);
498
- }
499
519
  //# sourceMappingURL=fileRouterController.js.map