@ereo/router 0.1.10 → 0.1.12

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.
@@ -81,6 +81,21 @@ export declare class FileRouter {
81
81
  * Load a route module and parse its configuration.
82
82
  */
83
83
  loadModule(route: Route): Promise<void>;
84
+ /**
85
+ * Load middleware for a route path.
86
+ * Returns an array of middleware functions from root to the route's segment.
87
+ */
88
+ loadMiddlewareForRoute(routeId: string): Promise<Array<{
89
+ file: string;
90
+ middleware: Function;
91
+ }>>;
92
+ /**
93
+ * Get middleware chain for a matched route.
94
+ */
95
+ getMiddlewareChain(routeId: string): Array<{
96
+ file: string;
97
+ module?: any;
98
+ }>;
84
99
  /**
85
100
  * Find parent route for a given route.
86
101
  */
@@ -1 +1 @@
1
- {"version":3,"file":"file-router.d.ts","sourceRoot":"","sources":["../src/file-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAa,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAkB,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAiB,YAAY,EAAE,MAAM,WAAW,CAAC;AAaxD;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA2D;IAC1E,OAAO,CAAC,aAAa,CAA6B;gBAEtC,OAAO,GAAE,aAAkB;IASvC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAmBxC;;OAEG;YACW,aAAa;IAqC3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAqBrB;;OAEG;IACH,OAAO,CAAC,aAAa,CAA8C;IAEnE,OAAO,CAAC,gBAAgB;IAyCxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACH,YAAY,IAAI,IAAI;IAOpB;;OAEG;IACH,SAAS,IAAI,KAAK,EAAE;IAIpB;;OAEG;IACH,OAAO,IAAI,SAAS,GAAG,IAAI;IAI3B;;OAEG;IACH,UAAU,IAAI,YAAY,GAAG,IAAI;IAIjC;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM;IAItB;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAI1E;;OAEG;IACH,OAAO,CAAC,IAAI;IAUZ;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB7C;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAOpE;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAW7C;;OAEG;IACG,sBAAsB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAK5F;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAK7C;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAmB5C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAYtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,UAAU,CAEpE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAIjF"}
1
+ {"version":3,"file":"file-router.d.ts","sourceRoot":"","sources":["../src/file-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAa,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAkB,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAiB,YAAY,EAAE,MAAM,WAAW,CAAC;AAaxD;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAA2D;IAC1E,OAAO,CAAC,aAAa,CAA6B;gBAEtC,OAAO,GAAE,aAAkB;IASvC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAmBxC;;OAEG;YACW,aAAa;IAqC3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAqBrB;;OAEG;IACH,OAAO,CAAC,aAAa,CAA8C;IAEnE,OAAO,CAAC,gBAAgB;IAyCxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACH,YAAY,IAAI,IAAI;IAOpB;;OAEG;IACH,SAAS,IAAI,KAAK,EAAE;IAIpB;;OAEG;IACH,OAAO,IAAI,SAAS,GAAG,IAAI;IAI3B;;OAEG;IACH,UAAU,IAAI,YAAY,GAAG,IAAI;IAIjC;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM;IAItB;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAI1E;;OAEG;IACH,OAAO,CAAC,IAAI;IAUZ;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB7C;;;OAGG;IACG,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;IA4BrG;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAK1E;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAOpE;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAW7C;;OAEG;IACG,sBAAsB,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAK5F;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAK7C;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAmB5C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAYtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,UAAU,CAEpE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAIjF"}
package/dist/index.js CHANGED
@@ -17,7 +17,8 @@ var SPECIAL_FILES = {
17
17
  LAYOUT: "_layout",
18
18
  ERROR: "_error",
19
19
  LOADING: "_loading",
20
- NOT_FOUND: "_404"
20
+ NOT_FOUND: "_404",
21
+ MIDDLEWARE: "_middleware"
21
22
  };
22
23
  var ROUTE_GROUP_PATTERN = /^\((.+)\)$/;
23
24
  var DYNAMIC_SEGMENT_PATTERN = /^\[([^\]]+)\]$/;
@@ -397,14 +398,36 @@ class RouteTree {
397
398
  }
398
399
  return layouts;
399
400
  }
401
+ middlewareByPath = new Map;
402
+ attachMiddleware(path, middlewareFile) {
403
+ this.middlewareByPath.set(path, { file: middlewareFile });
404
+ }
405
+ getMiddlewareChain(routeId) {
406
+ const node = this.findById(routeId);
407
+ if (!node)
408
+ return [];
409
+ const routePath = node.path;
410
+ const middlewares = [];
411
+ const sortedPaths = Array.from(this.middlewareByPath.keys()).sort((a, b) => a.length - b.length);
412
+ for (const middlewarePath of sortedPaths) {
413
+ if (middlewarePath === "/" || routePath === middlewarePath || routePath.startsWith(middlewarePath + "/")) {
414
+ const mw = this.middlewareByPath.get(middlewarePath);
415
+ if (mw) {
416
+ middlewares.push(mw);
417
+ }
418
+ }
419
+ }
420
+ return middlewares;
421
+ }
400
422
  }
401
423
  function filePathToUrlPath(filePath, routesDir) {
402
424
  let path = filePath.replace(routesDir, "").replace(/\.(tsx?|jsx?)$/, "");
403
425
  const fileName = path.split("/").pop() || "";
404
426
  const isLayout = fileName === SPECIAL_FILES.LAYOUT;
427
+ const isMiddleware = fileName === SPECIAL_FILES.MIDDLEWARE;
405
428
  const isIndex = fileName === "index";
406
- if (isLayout || isIndex) {
407
- path = path.replace(/\/?(index|_layout)$/, "");
429
+ if (isLayout || isIndex || isMiddleware) {
430
+ path = path.replace(/\/?(index|_layout|_middleware)$/, "");
408
431
  }
409
432
  path = path.replace(/\/\([^)]+\)/g, "");
410
433
  if (!path.startsWith("/")) {
@@ -416,12 +439,23 @@ function filePathToUrlPath(filePath, routesDir) {
416
439
  return {
417
440
  path: path || "/",
418
441
  index: isIndex,
419
- layout: isLayout
442
+ layout: isLayout,
443
+ middleware: isMiddleware
420
444
  };
421
445
  }
422
446
  function buildRouteTree(files, routesDir) {
423
447
  const tree = new RouteTree;
424
- const sortedFiles = [...files].sort((a, b) => {
448
+ const middlewareFiles = [];
449
+ const routeFiles = [];
450
+ for (const file of files) {
451
+ const { path, middleware } = filePathToUrlPath(file.relativePath, routesDir);
452
+ if (middleware) {
453
+ middlewareFiles.push({ ...file, path });
454
+ } else {
455
+ routeFiles.push(file);
456
+ }
457
+ }
458
+ const sortedFiles = [...routeFiles].sort((a, b) => {
425
459
  const aIsLayout = a.relativePath.includes(SPECIAL_FILES.LAYOUT);
426
460
  const bIsLayout = b.relativePath.includes(SPECIAL_FILES.LAYOUT);
427
461
  if (aIsLayout && !bIsLayout)
@@ -435,6 +469,9 @@ function buildRouteTree(files, routesDir) {
435
469
  const id = file.relativePath.replace(/\.(tsx?|jsx?)$/, "");
436
470
  tree.addRoute(id, path, file.absolutePath, { index, layout });
437
471
  }
472
+ for (const mw of middlewareFiles) {
473
+ tree.attachMiddleware(mw.path, mw.absolutePath);
474
+ }
438
475
  return tree;
439
476
  }
440
477
  function createRouteTree() {
@@ -885,6 +922,35 @@ class FileRouter {
885
922
  throw error;
886
923
  }
887
924
  }
925
+ async loadMiddlewareForRoute(routeId) {
926
+ if (!this.tree)
927
+ return [];
928
+ const middlewareChain = this.tree.getMiddlewareChain(routeId);
929
+ const result = [];
930
+ for (const mw of middlewareChain) {
931
+ if (!mw.module) {
932
+ try {
933
+ const mod = await import(mw.file);
934
+ mw.module = mod;
935
+ } catch (error) {
936
+ console.error(`Failed to load middleware: ${mw.file}`, error);
937
+ continue;
938
+ }
939
+ }
940
+ if (mw.module?.middleware) {
941
+ result.push({
942
+ file: mw.file,
943
+ middleware: mw.module.middleware
944
+ });
945
+ }
946
+ }
947
+ return result;
948
+ }
949
+ getMiddlewareChain(routeId) {
950
+ if (!this.tree)
951
+ return [];
952
+ return this.tree.getMiddlewareChain(routeId);
953
+ }
888
954
  findParentRoute(route) {
889
955
  const parentId = route.id.split("/").slice(0, -1).join("/") || "/";
890
956
  return this.routes.find((r) => r.id === parentId);
@@ -63,6 +63,25 @@ export declare class RouteTree {
63
63
  * Get the layout chain for a route.
64
64
  */
65
65
  getLayoutChain(routeId: string): RouteNode[];
66
+ /**
67
+ * Middleware stored by path prefix.
68
+ * Separate from route nodes since middleware can exist without a route at that path.
69
+ */
70
+ private middlewareByPath;
71
+ /**
72
+ * Attach middleware to a route segment.
73
+ * Middleware applies to all routes in and below this segment.
74
+ */
75
+ attachMiddleware(path: string, middlewareFile: string): void;
76
+ /**
77
+ * Get the middleware chain for a route (from root to leaf).
78
+ */
79
+ getMiddlewareChain(routeId: string): Array<{
80
+ file: string;
81
+ module?: {
82
+ middleware?: any;
83
+ };
84
+ }>;
66
85
  }
67
86
  /**
68
87
  * Convert a file path to a URL path.
@@ -71,6 +90,7 @@ export declare function filePathToUrlPath(filePath: string, routesDir: string):
71
90
  path: string;
72
91
  index: boolean;
73
92
  layout: boolean;
93
+ middleware: boolean;
74
94
  };
75
95
  /**
76
96
  * Build a route tree from file paths.
@@ -1 +1 @@
1
- {"version":3,"file":"route-tree.d.ts","sourceRoot":"","sources":["../src/route-tree.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,SAAS,CAAC;AAIvD;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAY;;IAMxB;;OAEG;IACH,OAAO,CAAC,UAAU;IAoBlB;;OAEG;IACH,QAAQ,CACN,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAClD,SAAS;IAeZ;;OAEG;IACH,OAAO,CAAC,UAAU;IA8BlB;;OAEG;IACH,OAAO,IAAI,SAAS;IAIpB;;OAEG;IACH,QAAQ,IAAI,KAAK,EAAE;IAInB;;OAEG;IACH,OAAO,CAAC,WAAW;IAoBnB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAc1C;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IActC;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAe/B;;OAEG;IACH,OAAO,IAAI,SAAS,EAAE;IActB;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE;IAIzB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE;CAgB7C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAsCnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,EAC5D,SAAS,EAAE,MAAM,GAChB,SAAS,CAoBX;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAE3C"}
1
+ {"version":3,"file":"route-tree.d.ts","sourceRoot":"","sources":["../src/route-tree.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,SAAS,CAAC;AAIvD;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAY;;IAMxB;;OAEG;IACH,OAAO,CAAC,UAAU;IAoBlB;;OAEG;IACH,QAAQ,CACN,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAClD,SAAS;IAeZ;;OAEG;IACH,OAAO,CAAC,UAAU;IA8BlB;;OAEG;IACH,OAAO,IAAI,SAAS;IAIpB;;OAEG;IACH,QAAQ,IAAI,KAAK,EAAE;IAInB;;OAEG;IACH,OAAO,CAAC,WAAW;IAoBnB;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAc1C;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IActC;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAe/B;;OAEG;IACH,OAAO,IAAI,SAAS,EAAE;IActB;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE;IAIzB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE;IAiB5C;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAA2E;IAEnG;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAK5D;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE;YAAE,UAAU,CAAC,EAAE,GAAG,CAAA;SAAE,CAAA;KAAE,CAAC;CA8B5F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAwCxE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,EAC5D,SAAS,EAAE,MAAM,GAChB,SAAS,CAsCX;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAE3C"}
package/dist/types.d.ts CHANGED
@@ -42,6 +42,14 @@ export interface RouteNode {
42
42
  index: boolean;
43
43
  /** Is this a layout? */
44
44
  layout: boolean;
45
+ /** Is this a middleware file? */
46
+ middleware?: boolean;
47
+ /** Middleware file path for this segment (if exists) */
48
+ middlewareFile?: string;
49
+ /** Loaded middleware module */
50
+ middlewareModule?: {
51
+ middleware?: MiddlewareFunction;
52
+ };
45
53
  /** Child routes */
46
54
  children: RouteNode[];
47
55
  /** Parent route (for layout resolution) */
@@ -51,6 +59,10 @@ export interface RouteNode {
51
59
  /** Score for sorting (more specific routes first) */
52
60
  score: number;
53
61
  }
62
+ /**
63
+ * Middleware function type.
64
+ */
65
+ export type MiddlewareFunction = (request: Request, next: () => Promise<Response>) => Promise<Response> | Response;
54
66
  /**
55
67
  * Router options.
56
68
  */
@@ -76,6 +88,13 @@ export interface MatchResult {
76
88
  pathname: string;
77
89
  /** Layouts to render (from root to leaf) */
78
90
  layouts: Route[];
91
+ /** Middleware to execute (from root to leaf) */
92
+ middlewares?: Array<{
93
+ file: string;
94
+ module?: {
95
+ middleware?: MiddlewareFunction;
96
+ };
97
+ }>;
79
98
  }
80
99
  /**
81
100
  * Route registry for type-safe routing.
@@ -120,6 +139,7 @@ export declare const SPECIAL_FILES: {
120
139
  readonly ERROR: "_error";
121
140
  readonly LOADING: "_loading";
122
141
  readonly NOT_FOUND: "_404";
142
+ readonly MIDDLEWARE: "_middleware";
123
143
  };
124
144
  /**
125
145
  * Route group pattern (parentheses).
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ereo/router",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "license": "MIT",
5
5
  "author": "Ereo Team",
6
6
  "homepage": "https://ereo.dev",