kiru 0.51.0-preview.1 → 0.51.0-preview.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/constants.d.ts.map +1 -1
  2. package/dist/constants.js +1 -0
  3. package/dist/constants.js.map +1 -1
  4. package/dist/router/cache.d.ts +71 -0
  5. package/dist/router/cache.d.ts.map +1 -0
  6. package/dist/router/cache.js +325 -0
  7. package/dist/router/cache.js.map +1 -0
  8. package/dist/router/client/index.d.ts.map +1 -1
  9. package/dist/router/client/index.js +15 -1
  10. package/dist/router/client/index.js.map +1 -1
  11. package/dist/router/context.d.ts +8 -0
  12. package/dist/router/context.d.ts.map +1 -1
  13. package/dist/router/context.js.map +1 -1
  14. package/dist/router/fileRouterController.d.ts +1 -0
  15. package/dist/router/fileRouterController.d.ts.map +1 -1
  16. package/dist/router/fileRouterController.js +124 -36
  17. package/dist/router/fileRouterController.js.map +1 -1
  18. package/dist/router/globals.d.ts +4 -0
  19. package/dist/router/globals.d.ts.map +1 -1
  20. package/dist/router/globals.js +3 -0
  21. package/dist/router/globals.js.map +1 -1
  22. package/dist/router/index.d.ts +3 -0
  23. package/dist/router/index.d.ts.map +1 -1
  24. package/dist/router/index.js +6 -0
  25. package/dist/router/index.js.map +1 -1
  26. package/dist/router/server/index.d.ts.map +1 -1
  27. package/dist/router/server/index.js +20 -14
  28. package/dist/router/server/index.js.map +1 -1
  29. package/dist/router/types.d.ts +31 -3
  30. package/dist/router/types.d.ts.map +1 -1
  31. package/dist/router/types.internal.d.ts +9 -8
  32. package/dist/router/types.internal.d.ts.map +1 -1
  33. package/dist/router/utils/index.d.ts +1 -6
  34. package/dist/router/utils/index.d.ts.map +1 -1
  35. package/dist/router/utils/index.js +1 -1
  36. package/dist/router/utils/index.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/constants.ts +1 -0
  39. package/src/router/cache.ts +385 -0
  40. package/src/router/client/index.ts +18 -1
  41. package/src/router/context.ts +8 -0
  42. package/src/router/fileRouterController.ts +140 -47
  43. package/src/router/globals.ts +5 -0
  44. package/src/router/index.ts +8 -0
  45. package/src/router/server/index.ts +30 -14
  46. package/src/router/types.internal.ts +10 -8
  47. package/src/router/types.ts +43 -13
  48. package/src/router/utils/index.ts +1 -1
@@ -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,aAehB,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,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"}
package/dist/constants.js CHANGED
@@ -21,6 +21,7 @@ const FLAG_DIRTY = 1 << 7;
21
21
  const EVENT_PREFIX_REGEX = /^on:?/;
22
22
  const voidElements = new Set([
23
23
  "kiru-head-outlet",
24
+ "kiru-body-outlet",
24
25
  "area",
25
26
  "base",
26
27
  "br",
@@ -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":"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,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;AACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAC3C,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;AAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAChD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AACrC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACxD,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAExD,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAClC,MAAM,qBAAqB,GAAG,iBAAiB,CAAA;AAE/C,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,CAAA;AAC1B,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,CAAA;AAC7B,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,CAAA;AAC5B,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,CAAA;AAC9B,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,CAAA;AACxB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,CAAA;AACxB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,CAAA;AAEzB,MAAM,kBAAkB,GAAG,OAAO,CAAA;AAElC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,kBAAkB;IAClB,kBAAkB;IAClB,MAAM;IACN,MAAM;IACN,IAAI;IACJ,KAAK;IACL,OAAO;IACP,IAAI;IACJ,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,KAAK;CACN,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;IACtB,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;IACT,eAAe;IACf,qBAAqB;IACrB,aAAa;IACb,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,cAAc;IACd,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,gBAAgB;IAChB,SAAS;IACT,aAAa;IACb,cAAc;IACd,UAAU;IACV,oBAAoB;IACpB,QAAQ;IACR,cAAc;IACd,QAAQ;IACR,eAAe;IACf,GAAG;IACH,OAAO;IACP,MAAM;IACN,gBAAgB;IAChB,QAAQ;IACR,MAAM;IACN,SAAS;IACT,UAAU;IACV,gBAAgB;IAChB,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,UAAU;IACV,OAAO;IACP,OAAO;IACP,KAAK;CACN,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,iBAAiB;IACjB,WAAW;IACX,UAAU;IACV,OAAO;IACP,SAAS;IACT,SAAS;IACT,UAAU;IACV,iBAAiB;IACjB,SAAS;IACT,SAAS;IACT,OAAO;IACP,UAAU;IACV,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,UAAU;IACV,QAAQ;IACR,UAAU;IACV,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,MAAM;IACN,SAAS;IACT,UAAU;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,UAAU;IACV,UAAU;IACV,YAAY;IACZ,WAAW;IACX,MAAM;CACP,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,CAAC,cAAc,EAAE,eAAe,CAAC;IACjC,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAC3C,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;IAC7C,CAAC,2BAA2B,EAAE,6BAA6B,CAAC;IAC5D,CAAC,cAAc,EAAE,eAAe,CAAC;IACjC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IACrC,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IACzC,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IACzC,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,cAAc,EAAE,eAAe,CAAC;IACjC,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;IACtC,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,4BAA4B,EAAE,8BAA8B,CAAC;IAC9D,CAAC,0BAA0B,EAAE,4BAA4B,CAAC;IAC1D,CAAC,WAAW,EAAE,aAAa,CAAC;IAC5B,CAAC,cAAc,EAAE,gBAAgB,CAAC;IAClC,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IACrC,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IACzC,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAC3C,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IACvC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IACrC,CAAC,WAAW,EAAE,YAAY,CAAC;IAC3B,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;IACnD,CAAC,wBAAwB,EAAE,yBAAyB,CAAC;IACrD,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IACvC,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IACzC,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IACrC,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IACzC,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IACrC,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IACvC,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAC3C,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;IAC7C,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,cAAc,EAAE,eAAe,CAAC;IACjC,CAAC,YAAY,EAAE,cAAc,CAAC;IAC9B,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,UAAU,EAAE,WAAW,CAAC;IACzB,CAAC,cAAc,EAAE,eAAe,CAAC;IACjC,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,CAAC,cAAc,EAAE,eAAe,CAAC;IACjC,CAAC,UAAU,EAAE,YAAY,CAAC;IAC1B,CAAC,aAAa,EAAE,eAAe,CAAC;IAChC,CAAC,aAAa,EAAE,eAAe,CAAC;IAChC,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,aAAa,EAAE,cAAc,CAAC;IAC/B,CAAC,YAAY,EAAE,aAAa,CAAC;IAC7B,CAAC,SAAS,EAAE,UAAU,CAAC;CACxB,CAAC,CAAA"}
@@ -0,0 +1,71 @@
1
+ import type { PageDataLoaderCacheConfig, RouteParams } from "./types.js";
2
+ export interface CacheEntry<T = unknown> {
3
+ data: T;
4
+ timestamp: number;
5
+ ttl: number;
6
+ }
7
+ export interface CacheKey {
8
+ path: string;
9
+ params: RouteParams;
10
+ query: Record<string, string | string[] | undefined>;
11
+ }
12
+ /**
13
+ * Main router cache that manages different storage types
14
+ */
15
+ export declare class RouterCache {
16
+ private stores;
17
+ constructor();
18
+ /**
19
+ * Get the appropriate cache store for the given config
20
+ */
21
+ private getStore;
22
+ /**
23
+ * Get cached data if it exists and hasn't expired
24
+ */
25
+ get<T>(key: CacheKey, config: PageDataLoaderCacheConfig): null | {
26
+ value: T;
27
+ };
28
+ /**
29
+ * Set cached data with TTL
30
+ */
31
+ set<T>(key: CacheKey, data: T, config: PageDataLoaderCacheConfig): void;
32
+ /**
33
+ * Invalidate cache entries by path patterns across all storage types
34
+ * Supports both exact paths ("/users/1") and folder patterns ("/users/[id]")
35
+ */
36
+ invalidate(...paths: string[]): void;
37
+ /**
38
+ * Invalidate cache entries in a specific store
39
+ */
40
+ private invalidateInStore;
41
+ /**
42
+ * Extract the path part from a cache key
43
+ */
44
+ private extractPathFromCacheKey;
45
+ /**
46
+ * Check if a pattern string contains dynamic segments
47
+ */
48
+ private isPattern;
49
+ /**
50
+ * Check if a given path matches any of the invalidation patterns
51
+ */
52
+ pathMatchesPattern(currentPath: string, patterns: string[]): boolean;
53
+ /**
54
+ * Match a path against a pattern using segment-by-segment comparison
55
+ * This is more reliable than regex for our use case
56
+ */
57
+ private matchPathPattern;
58
+ /**
59
+ * Check if a path segment matches a pattern segment
60
+ */
61
+ private segmentMatches;
62
+ /**
63
+ * Clear all cached data across all storage types
64
+ */
65
+ clear(): void;
66
+ /**
67
+ * Get cache size for debugging (memory cache only)
68
+ */
69
+ size(): number;
70
+ }
71
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/router/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExE,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,IAAI,EAAE,CAAC,CAAA;IACP,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;CACrD;AAqKD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAoC;;IASlD;;OAEG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,GAAG,CAAC,CAAC,EACH,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,yBAAyB,GAChC,IAAI,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE;IAKtB;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,yBAAyB,GAAG,IAAI;IAKvE;;;OAGG;IACH,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAOpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAO/B;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO;IAiBpE;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyCxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,IAAI,IAAI,MAAM;CAIf"}
@@ -0,0 +1,325 @@
1
+ /**
2
+ * Abstract base class for router cache implementations
3
+ */
4
+ class BaseCacheStore {
5
+ /**
6
+ * Generate a cache key from route information
7
+ */
8
+ generateKey(key) {
9
+ const { path, params, query } = key;
10
+ const sortedParams = Object.keys(params)
11
+ .sort()
12
+ .map((k) => `${k}=${params[k]}`)
13
+ .join("&");
14
+ const sortedQuery = Object.keys(query)
15
+ .sort()
16
+ .map((k) => {
17
+ const value = query[k];
18
+ if (Array.isArray(value)) {
19
+ return `${k}=${value.sort().join(",")}`;
20
+ }
21
+ return `${k}=${value}`;
22
+ })
23
+ .join("&");
24
+ return `kiru-cache:${path}?${sortedParams}&${sortedQuery}`;
25
+ }
26
+ /**
27
+ * Get cached data if it exists and hasn't expired
28
+ */
29
+ get(key) {
30
+ const cacheKey = this.generateKey(key);
31
+ const entry = this.getItem(cacheKey);
32
+ if (!entry) {
33
+ return null;
34
+ }
35
+ const now = Date.now();
36
+ if (now - entry.timestamp > entry.ttl) {
37
+ this.removeItem(cacheKey);
38
+ return null;
39
+ }
40
+ return { value: entry.data };
41
+ }
42
+ /**
43
+ * Set cached data with TTL
44
+ */
45
+ set(key, data, ttl) {
46
+ const cacheKey = this.generateKey(key);
47
+ const entry = {
48
+ data,
49
+ timestamp: Date.now(),
50
+ ttl,
51
+ };
52
+ this.setItem(cacheKey, entry);
53
+ }
54
+ /**
55
+ * Get cache size for debugging
56
+ */
57
+ size() {
58
+ return this.getAllKeys().length;
59
+ }
60
+ }
61
+ /**
62
+ * In-memory cache implementation
63
+ */
64
+ class MemoryCacheStore extends BaseCacheStore {
65
+ constructor() {
66
+ super(...arguments);
67
+ this.cache = new Map();
68
+ }
69
+ getItem(key) {
70
+ return this.cache.get(key) || null;
71
+ }
72
+ setItem(key, entry) {
73
+ this.cache.set(key, entry);
74
+ }
75
+ removeItem(key) {
76
+ this.cache.delete(key);
77
+ }
78
+ getAllKeys() {
79
+ return Array.from(this.cache.keys());
80
+ }
81
+ clear() {
82
+ this.cache.clear();
83
+ }
84
+ }
85
+ /**
86
+ * (local|session)Storage cache implementation
87
+ */
88
+ class StorageCacheStore extends BaseCacheStore {
89
+ constructor(storage) {
90
+ super();
91
+ this.storage = storage;
92
+ this.keyPrefix = "kiru-cache:";
93
+ }
94
+ getItem(key) {
95
+ try {
96
+ const item = this.storage.getItem(key);
97
+ return item ? JSON.parse(item) : null;
98
+ }
99
+ catch {
100
+ // Handle JSON parse errors or storage unavailable
101
+ return null;
102
+ }
103
+ }
104
+ setItem(key, entry) {
105
+ try {
106
+ this.storage.setItem(key, JSON.stringify(entry));
107
+ }
108
+ catch {
109
+ // Handle storage quota exceeded or unavailable
110
+ // Silently fail - cache is not critical
111
+ }
112
+ }
113
+ removeItem(key) {
114
+ try {
115
+ this.storage.removeItem(key);
116
+ }
117
+ catch {
118
+ // Silently handle errors
119
+ }
120
+ }
121
+ getAllKeys() {
122
+ try {
123
+ const keys = [];
124
+ for (let i = 0; i < localStorage.length; i++) {
125
+ const key = this.storage.key(i);
126
+ if (key && key.startsWith(this.keyPrefix)) {
127
+ keys.push(key);
128
+ }
129
+ }
130
+ return keys;
131
+ }
132
+ catch {
133
+ return [];
134
+ }
135
+ }
136
+ clear() {
137
+ try {
138
+ const keysToRemove = this.getAllKeys();
139
+ keysToRemove.forEach((key) => this.storage.removeItem(key));
140
+ }
141
+ catch {
142
+ // Silently handle errors
143
+ }
144
+ }
145
+ }
146
+ /**
147
+ * Main router cache that manages different storage types
148
+ */
149
+ export class RouterCache {
150
+ constructor() {
151
+ this.stores = new Map();
152
+ // Initialize default stores
153
+ this.stores.set("memory", new MemoryCacheStore());
154
+ this.stores.set("localStorage", new StorageCacheStore(localStorage));
155
+ this.stores.set("sessionStorage", new StorageCacheStore(sessionStorage));
156
+ }
157
+ /**
158
+ * Get the appropriate cache store for the given config
159
+ */
160
+ getStore(config) {
161
+ const store = this.stores.get(config.type);
162
+ if (!store) {
163
+ // Fallback to memory cache if type is not supported
164
+ return this.stores.get("memory");
165
+ }
166
+ return store;
167
+ }
168
+ /**
169
+ * Get cached data if it exists and hasn't expired
170
+ */
171
+ get(key, config) {
172
+ const store = this.getStore(config);
173
+ return store.get(key);
174
+ }
175
+ /**
176
+ * Set cached data with TTL
177
+ */
178
+ set(key, data, config) {
179
+ const store = this.getStore(config);
180
+ store.set(key, data, config.ttl);
181
+ }
182
+ /**
183
+ * Invalidate cache entries by path patterns across all storage types
184
+ * Supports both exact paths ("/users/1") and folder patterns ("/users/[id]")
185
+ */
186
+ invalidate(...paths) {
187
+ // Invalidate across all storage types
188
+ for (const store of this.stores.values()) {
189
+ this.invalidateInStore(store, paths);
190
+ }
191
+ }
192
+ /**
193
+ * Invalidate cache entries in a specific store
194
+ */
195
+ invalidateInStore(store, paths) {
196
+ const keysToDelete = [];
197
+ for (const path of paths) {
198
+ if (this.isPattern(path)) {
199
+ // Folder path pattern - check all cache keys
200
+ for (const cacheKey of store.getAllKeys()) {
201
+ const keyPath = this.extractPathFromCacheKey(cacheKey);
202
+ if (keyPath && this.pathMatchesPattern(keyPath, [path])) {
203
+ keysToDelete.push(cacheKey);
204
+ }
205
+ }
206
+ }
207
+ else {
208
+ // Exact path - find all cache keys that match this path
209
+ for (const cacheKey of store.getAllKeys()) {
210
+ const keyPath = this.extractPathFromCacheKey(cacheKey);
211
+ if (keyPath === path) {
212
+ keysToDelete.push(cacheKey);
213
+ }
214
+ }
215
+ }
216
+ }
217
+ // Delete all matched keys
218
+ for (const key of keysToDelete) {
219
+ store.removeItem(key);
220
+ }
221
+ }
222
+ /**
223
+ * Extract the path part from a cache key
224
+ */
225
+ extractPathFromCacheKey(cacheKey) {
226
+ // Remove the prefix and extract path part
227
+ const withoutPrefix = cacheKey.replace(/^kiru-cache:/, "");
228
+ const pathPart = withoutPrefix.split("?")[0];
229
+ return pathPart || null;
230
+ }
231
+ /**
232
+ * Check if a pattern string contains dynamic segments
233
+ */
234
+ isPattern(path) {
235
+ return path.includes("[") && path.includes("]");
236
+ }
237
+ /**
238
+ * Check if a given path matches any of the invalidation patterns
239
+ */
240
+ pathMatchesPattern(currentPath, patterns) {
241
+ for (const pattern of patterns) {
242
+ if (this.isPattern(pattern)) {
243
+ // Convert pattern to segments and match
244
+ if (this.matchPathPattern(currentPath, pattern)) {
245
+ return true;
246
+ }
247
+ }
248
+ else {
249
+ // Exact path match
250
+ if (currentPath === pattern) {
251
+ return true;
252
+ }
253
+ }
254
+ }
255
+ return false;
256
+ }
257
+ /**
258
+ * Match a path against a pattern using segment-by-segment comparison
259
+ * This is more reliable than regex for our use case
260
+ */
261
+ matchPathPattern(path, pattern) {
262
+ const pathSegments = path.split("/").filter(Boolean);
263
+ const patternSegments = pattern.split("/").filter(Boolean);
264
+ // Handle catchall patterns
265
+ const hasCatchall = patternSegments.some((seg) => seg.startsWith("[...") && seg.endsWith("]"));
266
+ if (hasCatchall) {
267
+ // Find the catchall position
268
+ const catchallIndex = patternSegments.findIndex((seg) => seg.startsWith("[...") && seg.endsWith("]"));
269
+ // Check segments before catchall
270
+ for (let i = 0; i < catchallIndex; i++) {
271
+ if (!this.segmentMatches(pathSegments[i], patternSegments[i])) {
272
+ return false;
273
+ }
274
+ }
275
+ // Catchall matches remaining segments
276
+ return pathSegments.length >= catchallIndex;
277
+ }
278
+ else {
279
+ // Regular pattern - must have same number of segments
280
+ if (pathSegments.length !== patternSegments.length) {
281
+ return false;
282
+ }
283
+ // Check each segment
284
+ for (let i = 0; i < pathSegments.length; i++) {
285
+ if (!this.segmentMatches(pathSegments[i], patternSegments[i])) {
286
+ return false;
287
+ }
288
+ }
289
+ return true;
290
+ }
291
+ }
292
+ /**
293
+ * Check if a path segment matches a pattern segment
294
+ */
295
+ segmentMatches(pathSegment, patternSegment) {
296
+ // Dynamic segment [param] matches any value
297
+ if (patternSegment.startsWith("[") &&
298
+ patternSegment.endsWith("]") &&
299
+ !patternSegment.startsWith("[...")) {
300
+ return pathSegment !== undefined;
301
+ }
302
+ // Catchall segment [...param] matches any remaining segments
303
+ if (patternSegment.startsWith("[...") && patternSegment.endsWith("]")) {
304
+ return true;
305
+ }
306
+ // Static segment must match exactly
307
+ return pathSegment === patternSegment;
308
+ }
309
+ /**
310
+ * Clear all cached data across all storage types
311
+ */
312
+ clear() {
313
+ for (const store of this.stores.values()) {
314
+ store.clear();
315
+ }
316
+ }
317
+ /**
318
+ * Get cache size for debugging (memory cache only)
319
+ */
320
+ size() {
321
+ const memoryStore = this.stores.get("memory");
322
+ return memoryStore ? memoryStore.size() : 0;
323
+ }
324
+ }
325
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/router/cache.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAe,cAAc;IAO3B;;OAEG;IACO,WAAW,CAAC,GAAa;QACjC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;QACnC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aACrC,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/B,IAAI,CAAC,GAAG,CAAC,CAAA;QAEZ,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;aACnC,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;YACzC,CAAC;YACD,OAAO,GAAG,CAAC,IAAI,KAAK,EAAE,CAAA;QACxB,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAA;QAEZ,OAAO,cAAc,IAAI,IAAI,YAAY,IAAI,WAAW,EAAE,CAAA;IAC5D,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,GAAa;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YACzB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAS,EAAE,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,GAAa,EAAE,IAAO,EAAE,GAAW;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,KAAK,GAAkB;YAC3B,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG;SACJ,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAA;IACjC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,gBAAiB,SAAQ,cAAc;IAA7C;;QACU,UAAK,GAAG,IAAI,GAAG,EAAsB,CAAA;IAqB/C,CAAC;IAnBW,OAAO,CAAC,GAAW;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IACpC,CAAC;IAES,OAAO,CAAC,GAAW,EAAE,KAAiB;QAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAEM,UAAU,CAAC,GAAW;QAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAEM,UAAU;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACtC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,iBAAkB,SAAQ,cAAc;IAE5C,YAAoB,OAAgB;QAClC,KAAK,EAAE,CAAA;QADW,YAAO,GAAP,OAAO,CAAS;QAD5B,cAAS,GAAG,aAAa,CAAA;IAGjC,CAAC;IAES,OAAO,CAAC,GAAW;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACtC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;YAClD,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAES,OAAO,CAAC,GAAW,EAAE,KAAiB;QAC9C,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;YAC/C,wCAAwC;QAC1C,CAAC;IACH,CAAC;IAEM,UAAU,CAAC,GAAW;QAC3B,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IAEM,UAAU;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,EAAE,CAAA;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBAC/B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAChB,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAEM,KAAK;QACV,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;YACtC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;IAGtB;QAFQ,WAAM,GAAG,IAAI,GAAG,EAA0B,CAAA;QAGhD,4BAA4B;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAA;QACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,MAAiC;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,oDAAoD;YACpD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAA;QACnC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;OAEG;IACH,GAAG,CACD,GAAa,EACb,MAAiC;QAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACnC,OAAO,KAAK,CAAC,GAAG,CAAI,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,GAAa,EAAE,IAAO,EAAE,MAAiC;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACnC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,GAAG,KAAe;QAC3B,sCAAsC;QACtC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,KAAqB,EAAE,KAAe;QAC9D,MAAM,YAAY,GAAa,EAAE,CAAA;QAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,6CAA6C;gBAC7C,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;oBACtD,IAAI,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBACxD,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,wDAAwD;gBACxD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;oBACtD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;wBACrB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,QAAgB;QAC9C,0CAA0C;QAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5C,OAAO,QAAQ,IAAI,IAAI,CAAA;IACzB,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACjD,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,WAAmB,EAAE,QAAkB;QACxD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,wCAAwC;gBACxC,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;oBAChD,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,mBAAmB;gBACnB,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;oBAC5B,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,IAAY,EAAE,OAAe;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACpD,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAE1D,2BAA2B;QAC3B,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CACtC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CACrD,CAAA;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,6BAA6B;YAC7B,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAC7C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CACrD,CAAA;YAED,iCAAiC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAED,sCAAsC;YACtC,OAAO,YAAY,CAAC,MAAM,IAAI,aAAa,CAAA;QAC7C,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,IAAI,YAAY,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;gBACnD,OAAO,KAAK,CAAA;YACd,CAAC;YAED,qBAAqB;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,WAAmB,EAAE,cAAsB;QAChE,4CAA4C;QAC5C,IACE,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;YAC9B,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC5B,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,EAClC,CAAC;YACD,OAAO,WAAW,KAAK,SAAS,CAAA;QAClC,CAAC;QAED,6DAA6D;QAC7D,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,OAAO,IAAI,CAAA;QACb,CAAC;QAED,oCAAoC;QACpC,OAAO,WAAW,KAAK,cAAc,CAAA;IACvC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,KAAK,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7C,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7C,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/router/client/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAc,MAAM,mBAAmB,CAAA;AAO3E,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,sBAAsB,CAAA;IAC7B,OAAO,EAAE,sBAAsB,CAAA;CAChC;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,iBAW1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/router/client/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAc,MAAM,mBAAmB,CAAA;AAQ3E,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,sBAAsB,CAAA;IAC7B,OAAO,EAAE,sBAAsB,CAAA;CAChC;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,iBAa1D"}
@@ -3,10 +3,12 @@ import { createElement } from "../../element.js";
3
3
  import { hydrate } from "../../ssr/client.js";
4
4
  import { FileRouter } from "../fileRouter.js";
5
5
  import { matchLayouts, matchRoute, match404Route, parseQuery, } from "../utils/index.js";
6
- import { fileRouterInstance, fileRouterRoute } from "../globals.js";
6
+ import { fileRouterInstance, fileRouterRoute, routerCache } from "../globals.js";
7
7
  import { FileRouterController } from "../fileRouterController.js";
8
8
  import { FileRouterDataLoadError } from "../errors.js";
9
+ import { RouterCache } from "../cache.js";
9
10
  export async function initClient(options) {
11
+ routerCache.current = new RouterCache();
10
12
  const { dir, baseUrl, pages, layouts } = options;
11
13
  const config = {
12
14
  dir,
@@ -20,6 +22,7 @@ export async function initClient(options) {
20
22
  }
21
23
  async function preparePreloadConfig(options, isStatic404 = false) {
22
24
  let pageProps = {};
25
+ let cacheData = null;
23
26
  let url = new URL(window.location.pathname, "http://localhost");
24
27
  const pathSegments = url.pathname.split("/").filter(Boolean);
25
28
  let routeMatch = matchRoute(options.pages, pathSegments);
@@ -58,6 +61,16 @@ async function preparePreloadConfig(options, isStatic404 = false) {
58
61
  }
59
62
  else if (typeof page.config?.loader?.load === "function") {
60
63
  pageProps = { loading: true, data: null, error: null };
64
+ const loader = page.config.loader;
65
+ // Check cache first if caching is enabled
66
+ if (loader.mode !== "static" && loader.cache) {
67
+ const cacheKey = {
68
+ path: window.location.pathname,
69
+ params: routeMatch.params,
70
+ query: parseQuery(url.search),
71
+ };
72
+ cacheData = routerCache.current.get(cacheKey, loader.cache);
73
+ }
61
74
  }
62
75
  return {
63
76
  pages: options.pages,
@@ -68,6 +81,7 @@ async function preparePreloadConfig(options, isStatic404 = false) {
68
81
  params: routeMatch.params,
69
82
  query: parseQuery(url.search),
70
83
  route: routeMatch.route,
84
+ cacheData,
71
85
  };
72
86
  }
73
87
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/client/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,13 @@
1
1
  import type { RouteQuery, RouterState } from "./types.js";
2
2
  export interface FileRouterContextType {
3
+ /**
4
+ * Invalidate cached loader data for the given paths
5
+ * @example
6
+ * invalidate("/users", "/posts", "/users/1")
7
+ * // or invalidate based on folder path
8
+ * invalidate("/users/[id]") // (invalidates /users/1, /users/2, etc.)
9
+ */
10
+ invalidate(...paths: string[]): void;
3
11
  /**
4
12
  * The current router state
5
13
  */
@@ -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;;OAEG;IACH,KAAK,EAAE,WAAW,CAAA;IAElB;;;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,qBAAqB;IACpC;;;;;;OAMG;IACH,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACpC;;OAEG;IACH,KAAK,EAAE,WAAW,CAAA;IAElB;;;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 +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;AAkC9C,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;AA0C9C,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"}
@@ -20,6 +20,7 @@ export declare class FileRouterController {
20
20
  dispose(): void;
21
21
  private loadRoute;
22
22
  private loadRouteData;
23
+ private invalidate;
23
24
  private navigate;
24
25
  private prefetchRouteModules;
25
26
  private setQuery;
@@ -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;AAoBnB,qBAAa,oBAAoB;IACxB,YAAY,EAAE,qBAAqB,CAAA;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,KAAK,CAAwB;IACrC,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;;IAuC5C,IAAI,CAAC,MAAM,EAAE,gBAAgB;IAoF7B,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAoCpE,WAAW;IAUX,OAAO;YAYA,SAAS;YAqHT,aAAa;YAwCb,QAAQ;YAaR,oBAAoB;IAmBlC,OAAO,CAAC,QAAQ;CAOjB"}
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;;IAyC5C,IAAI,CAAC,MAAM,EAAE,gBAAgB;IA+F7B,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IA+DpE,WAAW;IAUX,OAAO;YAYA,SAAS;YA2IT,aAAa;IAqD3B,OAAO,CAAC,UAAU;YAiBJ,QAAQ;YAaR,oBAAoB;IAmBlC,OAAO,CAAC,QAAQ;CAOjB"}