@ereo/router 0.1.9 → 0.1.11

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,52 @@ class RouteTree {
397
398
  }
398
399
  return layouts;
399
400
  }
401
+ attachMiddleware(path, middlewareFile) {
402
+ const node = this.findByPath(path);
403
+ if (node) {
404
+ node.middlewareFile = middlewareFile;
405
+ return;
406
+ }
407
+ if (path === "/") {
408
+ this.root.middlewareFile = middlewareFile;
409
+ }
410
+ }
411
+ getMiddlewareChain(routeId) {
412
+ const node = this.findById(routeId);
413
+ if (!node)
414
+ return [];
415
+ const middlewares = [];
416
+ const collectMiddleware = (current) => {
417
+ if (!current)
418
+ return;
419
+ if (current.parent) {
420
+ collectMiddleware(current.parent);
421
+ }
422
+ if (current.middlewareFile) {
423
+ middlewares.push({
424
+ file: current.middlewareFile,
425
+ module: current.middlewareModule
426
+ });
427
+ }
428
+ };
429
+ collectMiddleware(node);
430
+ if (this.root.middlewareFile && !middlewares.find((m) => m.file === this.root.middlewareFile)) {
431
+ middlewares.unshift({
432
+ file: this.root.middlewareFile,
433
+ module: this.root.middlewareModule
434
+ });
435
+ }
436
+ return middlewares;
437
+ }
400
438
  }
401
439
  function filePathToUrlPath(filePath, routesDir) {
402
440
  let path = filePath.replace(routesDir, "").replace(/\.(tsx?|jsx?)$/, "");
403
441
  const fileName = path.split("/").pop() || "";
404
442
  const isLayout = fileName === SPECIAL_FILES.LAYOUT;
443
+ const isMiddleware = fileName === SPECIAL_FILES.MIDDLEWARE;
405
444
  const isIndex = fileName === "index";
406
- if (isLayout || isIndex) {
407
- path = path.replace(/\/?(index|_layout)$/, "");
445
+ if (isLayout || isIndex || isMiddleware) {
446
+ path = path.replace(/\/?(index|_layout|_middleware)$/, "");
408
447
  }
409
448
  path = path.replace(/\/\([^)]+\)/g, "");
410
449
  if (!path.startsWith("/")) {
@@ -416,12 +455,23 @@ function filePathToUrlPath(filePath, routesDir) {
416
455
  return {
417
456
  path: path || "/",
418
457
  index: isIndex,
419
- layout: isLayout
458
+ layout: isLayout,
459
+ middleware: isMiddleware
420
460
  };
421
461
  }
422
462
  function buildRouteTree(files, routesDir) {
423
463
  const tree = new RouteTree;
424
- const sortedFiles = [...files].sort((a, b) => {
464
+ const middlewareFiles = [];
465
+ const routeFiles = [];
466
+ for (const file of files) {
467
+ const { path, middleware } = filePathToUrlPath(file.relativePath, routesDir);
468
+ if (middleware) {
469
+ middlewareFiles.push({ ...file, path });
470
+ } else {
471
+ routeFiles.push(file);
472
+ }
473
+ }
474
+ const sortedFiles = [...routeFiles].sort((a, b) => {
425
475
  const aIsLayout = a.relativePath.includes(SPECIAL_FILES.LAYOUT);
426
476
  const bIsLayout = b.relativePath.includes(SPECIAL_FILES.LAYOUT);
427
477
  if (aIsLayout && !bIsLayout)
@@ -435,6 +485,9 @@ function buildRouteTree(files, routesDir) {
435
485
  const id = file.relativePath.replace(/\.(tsx?|jsx?)$/, "");
436
486
  tree.addRoute(id, path, file.absolutePath, { index, layout });
437
487
  }
488
+ for (const mw of middlewareFiles) {
489
+ tree.attachMiddleware(mw.path, mw.absolutePath);
490
+ }
438
491
  return tree;
439
492
  }
440
493
  function createRouteTree() {
@@ -885,6 +938,35 @@ class FileRouter {
885
938
  throw error;
886
939
  }
887
940
  }
941
+ async loadMiddlewareForRoute(routeId) {
942
+ if (!this.tree)
943
+ return [];
944
+ const middlewareChain = this.tree.getMiddlewareChain(routeId);
945
+ const result = [];
946
+ for (const mw of middlewareChain) {
947
+ if (!mw.module) {
948
+ try {
949
+ const mod = await import(mw.file);
950
+ mw.module = mod;
951
+ } catch (error) {
952
+ console.error(`Failed to load middleware: ${mw.file}`, error);
953
+ continue;
954
+ }
955
+ }
956
+ if (mw.module?.middleware) {
957
+ result.push({
958
+ file: mw.file,
959
+ middleware: mw.module.middleware
960
+ });
961
+ }
962
+ }
963
+ return result;
964
+ }
965
+ getMiddlewareChain(routeId) {
966
+ if (!this.tree)
967
+ return [];
968
+ return this.tree.getMiddlewareChain(routeId);
969
+ }
888
970
  findParentRoute(route) {
889
971
  const parentId = route.id.split("/").slice(0, -1).join("/") || "/";
890
972
  return this.routes.find((r) => r.id === parentId);
@@ -63,6 +63,20 @@ export declare class RouteTree {
63
63
  * Get the layout chain for a route.
64
64
  */
65
65
  getLayoutChain(routeId: string): RouteNode[];
66
+ /**
67
+ * Attach middleware to a route segment.
68
+ * Middleware applies to all routes in and below this segment.
69
+ */
70
+ attachMiddleware(path: string, middlewareFile: string): void;
71
+ /**
72
+ * Get the middleware chain for a route (from root to leaf).
73
+ */
74
+ getMiddlewareChain(routeId: string): Array<{
75
+ file: string;
76
+ module?: {
77
+ middleware?: any;
78
+ };
79
+ }>;
66
80
  }
67
81
  /**
68
82
  * Convert a file path to a URL path.
@@ -71,6 +85,7 @@ export declare function filePathToUrlPath(filePath: string, routesDir: string):
71
85
  path: string;
72
86
  index: boolean;
73
87
  layout: boolean;
88
+ middleware: boolean;
74
89
  };
75
90
  /**
76
91
  * 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,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAc5D;;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;CAoC5F;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.9",
3
+ "version": "0.1.11",
4
4
  "license": "MIT",
5
5
  "author": "Ereo Team",
6
6
  "homepage": "https://ereo.dev",