@typed/router 0.27.7 → 0.28.0

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 (46) hide show
  1. package/MatchInput/package.json +6 -0
  2. package/RouteGuard/package.json +6 -0
  3. package/RouteMatch/package.json +6 -0
  4. package/dist/cjs/CurrentRoute.js +48 -31
  5. package/dist/cjs/CurrentRoute.js.map +1 -1
  6. package/dist/cjs/MatchInput.js +96 -0
  7. package/dist/cjs/MatchInput.js.map +1 -0
  8. package/dist/cjs/Matcher.js +97 -73
  9. package/dist/cjs/Matcher.js.map +1 -1
  10. package/dist/cjs/RouteGuard.js +78 -0
  11. package/dist/cjs/RouteGuard.js.map +1 -0
  12. package/dist/cjs/RouteMatch.js +49 -0
  13. package/dist/cjs/RouteMatch.js.map +1 -0
  14. package/dist/cjs/index.js +25 -0
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/dts/CurrentRoute.d.ts +19 -14
  17. package/dist/dts/CurrentRoute.d.ts.map +1 -1
  18. package/dist/dts/MatchInput.d.ts +135 -0
  19. package/dist/dts/MatchInput.d.ts.map +1 -0
  20. package/dist/dts/Matcher.d.ts +94 -33
  21. package/dist/dts/Matcher.d.ts.map +1 -1
  22. package/dist/dts/RouteGuard.d.ts +94 -0
  23. package/dist/dts/RouteGuard.d.ts.map +1 -0
  24. package/dist/dts/RouteMatch.d.ts +50 -0
  25. package/dist/dts/RouteMatch.d.ts.map +1 -0
  26. package/dist/dts/index.d.ts +12 -0
  27. package/dist/dts/index.d.ts.map +1 -1
  28. package/dist/esm/CurrentRoute.js +46 -29
  29. package/dist/esm/CurrentRoute.js.map +1 -1
  30. package/dist/esm/MatchInput.js +79 -0
  31. package/dist/esm/MatchInput.js.map +1 -0
  32. package/dist/esm/Matcher.js +95 -67
  33. package/dist/esm/Matcher.js.map +1 -1
  34. package/dist/esm/RouteGuard.js +57 -0
  35. package/dist/esm/RouteGuard.js.map +1 -0
  36. package/dist/esm/RouteMatch.js +29 -0
  37. package/dist/esm/RouteMatch.js.map +1 -0
  38. package/dist/esm/index.js +12 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/package.json +35 -10
  41. package/src/CurrentRoute.ts +113 -63
  42. package/src/MatchInput.ts +282 -0
  43. package/src/Matcher.ts +325 -143
  44. package/src/RouteGuard.ts +217 -0
  45. package/src/RouteMatch.ts +104 -0
  46. package/src/index.ts +15 -0
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.flatMap = exports.filterMap = exports.filter = exports.concat = void 0;
7
+ exports.fromRoute = fromRoute;
8
+ exports.make = make;
9
+ exports.mapEffect = exports.map = void 0;
10
+ var Guard = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@typed/guard"));
11
+ var Route = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@typed/route"));
12
+ var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
13
+ var _Function = /*#__PURE__*/require("effect/Function");
14
+ var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ /**
18
+ * @since 1.0.0
19
+ */
20
+
21
+ /**
22
+ * @since 1.0.0
23
+ */
24
+ function make(route, guard) {
25
+ return {
26
+ route,
27
+ guard
28
+ };
29
+ }
30
+ /**
31
+ * @since 1.0.0
32
+ */
33
+ function fromRoute(route) {
34
+ return make(route, (0, _Function.flow)(Route.decode_(route), Effect.optionFromOptional));
35
+ }
36
+ /**
37
+ * @since 1.0.0
38
+ */
39
+ const map = exports.map = /*#__PURE__*/(0, _Function.dual)(2, function map(self, f) {
40
+ return make(self.route, Guard.map(self.guard, f));
41
+ });
42
+ /**
43
+ * @since 1.0.0
44
+ */
45
+ const mapEffect = exports.mapEffect = /*#__PURE__*/(0, _Function.dual)(2, function mapEffect(self, f) {
46
+ return make(self.route, Guard.mapEffect(self.guard, f));
47
+ });
48
+ /**
49
+ * @since 1.0.0
50
+ */
51
+ const filter = exports.filter = /*#__PURE__*/(0, _Function.dual)(2, function filter(self, f) {
52
+ return make(self.route, Guard.filter(self.guard, f));
53
+ });
54
+ /**
55
+ * @since 1.0.0
56
+ */
57
+ const filterMap = exports.filterMap = /*#__PURE__*/(0, _Function.dual)(2, function filterMap(self, f) {
58
+ return make(self.route, Guard.filterMap(self.guard, f));
59
+ });
60
+ /**
61
+ * @since 1.0.0
62
+ */
63
+ const flatMap = exports.flatMap = /*#__PURE__*/(0, _Function.dual)(2, function flatMap(self, guard) {
64
+ return make(self.route, Guard.compose(self.guard, guard));
65
+ });
66
+ /**
67
+ * @since 1.0.0
68
+ */
69
+ const concat = exports.concat = /*#__PURE__*/(0, _Function.dual)(2, function concat(self, other) {
70
+ return make(Route.concat(self.route, other.route), input => Effect.Do.pipe(Effect.bind("a", () => self.guard(input)), Effect.bind("b", () => other.guard(input)), Effect.map(options => Option.map(Option.all(options), ({
71
+ a,
72
+ b
73
+ }) => ({
74
+ ...a,
75
+ ...b
76
+ })))));
77
+ });
78
+ //# sourceMappingURL=RouteGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteGuard.js","names":["Guard","_interopRequireWildcard","require","Route","Effect","_Function","Option","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","route","guard","fromRoute","flow","decode_","optionFromOptional","map","exports","dual","self","f","mapEffect","filter","filterMap","flatMap","compose","concat","other","input","Do","pipe","bind","options","all","b"],"sources":["../../src/RouteGuard.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fromInput = fromInput;
7
+ exports.fromRoute = fromRoute;
8
+ exports.make = make;
9
+ var _Fx = /*#__PURE__*/require("@typed/fx/Fx");
10
+ var _Function = /*#__PURE__*/require("effect/Function");
11
+ var _CurrentRoute = /*#__PURE__*/require("./CurrentRoute.js");
12
+ var _MatchInput = /*#__PURE__*/require("./MatchInput.js");
13
+ var RouteGuard = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./RouteGuard.js"));
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ /**
17
+ * @since 1.0.0
18
+ */
19
+
20
+ /**
21
+ * @since 1.0.0
22
+ */
23
+ function make(route, guard, match) {
24
+ return {
25
+ route,
26
+ guard,
27
+ match: (0, _Function.flow)(match, (0, _Fx.middleware)((0, _CurrentRoute.withCurrentRoute)(route)))
28
+ };
29
+ }
30
+ /**
31
+ * @since 1.0.0
32
+ */
33
+ function fromRoute(route, match) {
34
+ const {
35
+ guard
36
+ } = RouteGuard.fromRoute(route);
37
+ return make(route, guard, match);
38
+ }
39
+ /**
40
+ * @since 1.0.0
41
+ */
42
+ function fromInput(input, match) {
43
+ const {
44
+ guard,
45
+ route
46
+ } = (0, _MatchInput.asRouteGuard)(input);
47
+ return make(route, guard, match);
48
+ }
49
+ //# sourceMappingURL=RouteMatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouteMatch.js","names":["_Fx","require","_Function","_CurrentRoute","_MatchInput","RouteGuard","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","route","guard","match","flow","middleware","withCurrentRoute","fromRoute","fromInput","input","asRouteGuard"],"sources":["../../src/RouteMatch.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAIA,IAAAA,GAAA,gBAAAC,OAAA;AAIA,IAAAC,SAAA,gBAAAD,OAAA;AACA,IAAAE,aAAA,gBAAAF,OAAA;AAEA,IAAAG,WAAA,gBAAAH,OAAA;AACA,IAAAI,UAAA,gBAAAC,uBAAA,eAAAL,OAAA;AAA6C,SAAAM,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAF,wBAAAE,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAZ7C;;;;AAsDA;;;AAGM,SAAUW,IAAIA,CAClBC,KAAQ,EACRC,KAA+B,EAC/BC,KAA4C;EAE5C,OAAO;IAAEF,KAAK;IAAEC,KAAK;IAAEC,KAAK,EAAE,IAAAC,cAAI,EAACD,KAAK,EAAE,IAAAE,cAAU,EAAC,IAAAC,8BAAgB,EAACL,KAAK,CAAC,CAAC;EAAC,CAAE;AAClF;AAEA;;;AAGM,SAAUM,SAASA,CACvBN,KAAQ,EACRE,KAA8D;EAU9D,MAAM;IAAED;EAAK,CAAE,GAAGxB,UAAU,CAAC6B,SAAS,CAACN,KAAK,CAAC;EAE7C,OAAOD,IAAI,CAACC,KAAK,EAAEC,KAAK,EAAEC,KAAK,CAAC;AAClC;AAEA;;;AAGM,SAAUK,SAASA,CACvBC,KAAQ,EACRN,KAA8D;EAU9D,MAAM;IAAED,KAAK;IAAED;EAAK,CAAE,GAAG,IAAAS,wBAAY,EAACD,KAAK,CAAC;EAE5C,OAAOT,IAAI,CAACC,KAAK,EAAEC,KAAK,EAAEC,KAAK,CAAC;AAClC","ignoreList":[]}
package/dist/cjs/index.js CHANGED
@@ -3,9 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ RouteGuard: true,
8
+ RouteMatch: true
9
+ };
10
+ exports.RouteMatch = exports.RouteGuard = void 0;
6
11
  var _CurrentRoute = /*#__PURE__*/require("./CurrentRoute.js");
7
12
  Object.keys(_CurrentRoute).forEach(function (key) {
8
13
  if (key === "default" || key === "__esModule") return;
14
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
9
15
  if (key in exports && exports[key] === _CurrentRoute[key]) return;
10
16
  Object.defineProperty(exports, key, {
11
17
  enumerable: true,
@@ -17,6 +23,7 @@ Object.keys(_CurrentRoute).forEach(function (key) {
17
23
  var _Matcher = /*#__PURE__*/require("./Matcher.js");
18
24
  Object.keys(_Matcher).forEach(function (key) {
19
25
  if (key === "default" || key === "__esModule") return;
26
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
27
  if (key in exports && exports[key] === _Matcher[key]) return;
21
28
  Object.defineProperty(exports, key, {
22
29
  enumerable: true,
@@ -25,4 +32,22 @@ Object.keys(_Matcher).forEach(function (key) {
25
32
  }
26
33
  });
27
34
  });
35
+ var _MatchInput = /*#__PURE__*/require("./MatchInput.js");
36
+ Object.keys(_MatchInput).forEach(function (key) {
37
+ if (key === "default" || key === "__esModule") return;
38
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
39
+ if (key in exports && exports[key] === _MatchInput[key]) return;
40
+ Object.defineProperty(exports, key, {
41
+ enumerable: true,
42
+ get: function () {
43
+ return _MatchInput[key];
44
+ }
45
+ });
46
+ });
47
+ var _RouteGuard = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./RouteGuard.js"));
48
+ exports.RouteGuard = _RouteGuard;
49
+ var _RouteMatch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./RouteMatch.js"));
50
+ exports.RouteMatch = _RouteMatch;
51
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
52
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
53
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_CurrentRoute","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_Matcher"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;AAOA,IAAAA,aAAA,gBAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,aAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,aAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,aAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AAKA,IAAAK,QAAA,gBAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_CurrentRoute","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Matcher","_MatchInput","_RouteGuard","_interopRequireWildcard","RouteGuard","_RouteMatch","RouteMatch","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;AAOA,IAAAA,aAAA,gBAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,aAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,aAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAb,aAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AAKA,IAAAS,QAAA,gBAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,QAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,QAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,QAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AAKA,IAAAU,WAAA,gBAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,WAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,WAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,WAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AAA+B,IAAAW,WAAA,gBAAAC,uBAAA,eAAAhB,OAAA;AAAAS,OAAA,CAAAQ,UAAA,GAAAF,WAAA;AAAA,IAAAG,WAAA,gBAAAF,uBAAA,eAAAhB,OAAA;AAAAS,OAAA,CAAAU,UAAA,GAAAD,WAAA;AAAA,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAZ,GAAA,CAAAS,CAAA,OAAAO,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAA7B,MAAA,CAAAS,cAAA,IAAAT,MAAA,CAAA8B,wBAAA,WAAAC,CAAA,IAAAX,CAAA,oBAAAW,CAAA,OAAA1B,cAAA,CAAAC,IAAA,CAAAc,CAAA,EAAAW,CAAA,SAAAC,CAAA,GAAAH,CAAA,GAAA7B,MAAA,CAAA8B,wBAAA,CAAAV,CAAA,EAAAW,CAAA,UAAAC,CAAA,KAAAA,CAAA,CAAArB,GAAA,IAAAqB,CAAA,CAAAC,GAAA,IAAAjC,MAAA,CAAAS,cAAA,CAAAkB,CAAA,EAAAI,CAAA,EAAAC,CAAA,IAAAL,CAAA,CAAAI,CAAA,IAAAX,CAAA,CAAAW,CAAA,YAAAJ,CAAA,CAAAF,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAU,GAAA,CAAAb,CAAA,EAAAO,CAAA,GAAAA,CAAA","ignoreList":[]}
@@ -3,18 +3,18 @@
3
3
  */
4
4
  import * as Context from "@typed/context";
5
5
  import * as Document from "@typed/dom/Document";
6
+ import type * as Fx from "@typed/fx";
6
7
  import * as RefSubject from "@typed/fx/RefSubject";
7
- import type { Navigation } from "@typed/navigation";
8
- import type { Layer } from "effect";
9
- import * as Option from "effect/Option";
10
- import * as Effect from "effect/Effect";
11
- import type { ParamsOf } from "@typed/path";
8
+ import { Navigation } from "@typed/navigation";
12
9
  import * as Route from "@typed/route";
10
+ import * as Effect from "effect/Effect";
11
+ import type * as Layer from "effect/Layer";
12
+ import * as Option from "effect/Option";
13
13
  /**
14
14
  * @since 1.0.0
15
15
  */
16
- export interface CurrentRoute<P extends string = string> {
17
- readonly route: Route.Route<P>;
16
+ export interface CurrentRoute {
17
+ readonly route: Route.Route.Any;
18
18
  readonly parent: Option.Option<CurrentRoute>;
19
19
  }
20
20
  /**
@@ -24,11 +24,11 @@ export declare const CurrentRoute: Context.Tagged<CurrentRoute>;
24
24
  /**
25
25
  * @since 1.0.0
26
26
  */
27
- export declare function make<const P extends string>(route: P | Route.Route<P>, parent?: Option.Option<CurrentRoute>): CurrentRoute<P>;
27
+ export declare function makeCurrentRoute<R extends Route.Route.Any>(route: R, parent?: Option.Option<CurrentRoute>): CurrentRoute;
28
28
  /**
29
29
  * @since 1.0.0
30
30
  */
31
- export declare function layer<const P extends string>(route: P | Route.Route<P>, parent?: Option.Option<CurrentRoute>): Layer.Layer<CurrentRoute>;
31
+ export declare function layer<R extends Route.Route.Any>(route: R, parent?: Option.Option<CurrentRoute>): Layer.Layer<CurrentRoute>;
32
32
  /**
33
33
  * @since 1.0.0
34
34
  */
@@ -37,17 +37,22 @@ export declare const CurrentParams: RefSubject.Filtered<Readonly<Record<string,
37
37
  * @since 1.0.0
38
38
  */
39
39
  export declare const withCurrentRoute: {
40
- <P extends string>(route: Route.Route<P>): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, CurrentRoute>>;
41
- <A, E, R, P extends string>(effect: Effect.Effect<A, E, R>, route: Route.Route<P>): Effect.Effect<A, E, Exclude<R, CurrentRoute>>;
40
+ <R extends Route.Route.Any>(route: R): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, CurrentRoute>>;
41
+ <A, E, R, R_ extends Route.Route.Any>(effect: Effect.Effect<A, E, R>, route: R_): Effect.Effect<A, E, Exclude<R, CurrentRoute>>;
42
42
  };
43
43
  /**
44
44
  * @since 1.0.0
45
45
  */
46
- export declare function makeHref<const P extends string>(pathOrRoute: Route.Route<P> | P, ...params: [keyof ParamsOf<P>] extends [never] ? [{}?] : [ParamsOf<P>]): RefSubject.Filtered<string, never, Navigation | CurrentRoute>;
46
+ export declare function makeHref<const R extends Route.Route.Any>(route: R, ...[params]: Route.Route.ParamsList<R>): RefSubject.Filtered<string, never, Navigation | CurrentRoute>;
47
+ /**
48
+ * @since 1.0.0
49
+ */
50
+ export declare function isActive<R extends Route.Route.Any>(route: R, ...[params]: Route.Route.ParamsList<R>): RefSubject.Computed<boolean, never, Navigation | CurrentRoute>;
51
+ export declare function isActive<R extends Route.Route.Any>(route: R, params: Route.Route.Params<R>): RefSubject.Computed<boolean, never, Navigation | CurrentRoute>;
47
52
  /**
48
53
  * @since 1.0.0
49
54
  */
50
- export declare function isActive<const P extends string>(pathOrRoute: Route.Route<P> | P, ...params: [keyof ParamsOf<P>] extends [never] ? [{}?] : [ParamsOf<P>]): RefSubject.Computed<boolean, never, Navigation | CurrentRoute>;
55
+ export declare function decode<R extends Route.Route.Any>(route: R): Fx.RefSubject.Filtered<Route.Route.Type<R>, Route.RouteDecodeError<R>, Navigation | CurrentRoute | Route.Route.Context<R>>;
51
56
  /**
52
57
  * @since 1.0.0
53
58
  */
@@ -63,5 +68,5 @@ export declare const CurrentSearchParams: RefSubject.Computed<Readonly<Record<st
63
68
  /**
64
69
  * @since 1.0.0
65
70
  */
66
- export declare const CurrentState: RefSubject.Computed<unknown, never, Navigation>;
71
+ export declare const CurrentState: Fx.RefSubject.Computed<unknown, never, Navigation>;
67
72
  //# sourceMappingURL=CurrentRoute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CurrentRoute.d.ts","sourceRoot":"","sources":["../../src/CurrentRoute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CurrentRoute.d.ts","sourceRoot":"","sources":["../../src/CurrentRoute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Schema from "@effect/schema/Schema";
5
+ import type { Guard } from "@typed/guard";
6
+ import type * as _Path from "@typed/path";
7
+ import * as Route from "@typed/route";
8
+ import type * as Effect from "effect/Effect";
9
+ import type * as Option from "effect/Option";
10
+ import * as RouteGuard from "./RouteGuard.js";
11
+ /**
12
+ * @since 1.0.0
13
+ */
14
+ export type MatchInput<P extends string, S extends Schema.Schema.All, A = never, E = never, R = never> = Route.Route<P, S> | RouteGuard.RouteGuard<Route.Route<P, S>, A, E, R>;
15
+ /**
16
+ * @since 1.0.0
17
+ */
18
+ export declare namespace MatchInput {
19
+ /**
20
+ * @since 1.0.0
21
+ */
22
+ type Any = MatchInput<any, any, any, any, any> | MatchInput<any, never, any, any, any>;
23
+ /**
24
+ * @since 1.0.0
25
+ */
26
+ type Route<T> = T extends Route.Route<infer P, infer S> ? Route.Route<P, S> : T extends RouteGuard.RouteGuard<Route.Route<infer P, infer S>, infer _A, infer _E, infer _R> ? Route.Route<P, S> : never;
27
+ /**
28
+ * @since 1.0.0
29
+ */
30
+ type Path<T> = Route.Route.Path<Route<T>>;
31
+ /**
32
+ * @since 1.0.0
33
+ */
34
+ type ParamsOf<T> = Route.Route.Params<Route<T>>;
35
+ /**
36
+ * @since 1.0.0
37
+ */
38
+ type HasParams<T> = Route<T> extends Route.Route<infer P, infer _> ? _Path.HasParams<P> : false;
39
+ /**
40
+ * @since 1.0.0
41
+ */
42
+ type HasPathParams<T> = Route<T> extends Route.Route<infer P, infer _> ? P extends `${infer P2}\\?${infer _}` ? _Path.HasParams<P2> : _Path.HasParams<P> : false;
43
+ /**
44
+ * @since 1.0.0
45
+ */
46
+ type HasQueryParams<T> = Route<T> extends Route.Route<infer P, infer _> ? P extends `${infer _}\\?${infer P2}` ? _Path.HasParams<`\\?${P2}`> : false : false;
47
+ /**
48
+ * @since 1.0.0
49
+ */
50
+ type Success<T> = T extends Route.Route<infer _P, infer _S> ? Route.Route.Type<T> : T extends RouteGuard.RouteGuard<Route.Route<infer _P, infer _S>, infer A, infer _E, infer _R> ? A : never;
51
+ /**
52
+ * @since 1.0.0
53
+ */
54
+ type Error<T> = T extends Route.Route<infer _P, infer _S> ? Route.RouteDecodeError<T> : T extends RouteGuard.RouteGuard<Route.Route<infer _P, infer _S>, infer _A, infer E, infer _R> ? E : never;
55
+ /**
56
+ * @since 1.0.0
57
+ */
58
+ type Context<T> = T extends Route.Route<infer _P, infer _S> ? Route.Route.Context<T> : T extends RouteGuard.RouteGuard<Route.Route<infer _P, infer _S>, infer _A, infer _E, infer R> ? R : never;
59
+ /**
60
+ * @since 1.0.0
61
+ */
62
+ type Schema<T> = Route.Route.Schema<MatchInput.Route<T>>;
63
+ /**
64
+ * @since 1.0.0
65
+ */
66
+ type PathSchema<T> = Route.Route.PathSchema<MatchInput.Route<T>>;
67
+ /**
68
+ * @since 1.0.0
69
+ */
70
+ type QuerySchema<T> = Route.Route.QuerySchema<MatchInput.Route<T>>;
71
+ }
72
+ /**
73
+ * @since 1.0.0
74
+ */
75
+ export declare function asRouteGuard<I extends MatchInput.Any>(input: I): RouteGuard.RouteGuard<MatchInput.Route<I>, MatchInput.Success<I>, MatchInput.Error<I>, MatchInput.Context<I>>;
76
+ /**
77
+ * @since 1.0.0
78
+ */
79
+ export declare const map: {
80
+ <I extends MatchInput.Any, A>(f: (a: MatchInput.Success<I>) => A): (input: I) => RouteGuard.RouteGuard<MatchInput.Route<I>, A, MatchInput.Error<I>, MatchInput.Context<I>>;
81
+ <I extends MatchInput.Any, A>(input: I, f: (a: MatchInput.Success<I>) => A): RouteGuard.RouteGuard<MatchInput.Route<I>, A, MatchInput.Error<I>, MatchInput.Context<I>>;
82
+ };
83
+ /**
84
+ * @since 1.0.0
85
+ */
86
+ export declare const mapEffect: {
87
+ <I extends MatchInput.Any, A, E2, R2>(f: (a: MatchInput.Success<I>) => Effect.Effect<A, E2, R2>): (input: I) => RouteGuard.RouteGuard<MatchInput.Route<I>, A, E2 | MatchInput.Error<I>, R2 | MatchInput.Context<I>>;
88
+ <I extends MatchInput.Any, A, E2, R2>(input: I, f: (a: MatchInput.Success<I>) => Effect.Effect<A, E2, R2>): RouteGuard.RouteGuard<MatchInput.Route<I>, A, E2 | MatchInput.Error<I>, R2 | MatchInput.Context<I>>;
89
+ };
90
+ /**
91
+ * @since 1.0.0
92
+ */
93
+ export declare const filter: {
94
+ <I extends MatchInput.Any>(f: (a: MatchInput.Success<I>) => boolean): (input: I) => RouteGuard.RouteGuard<MatchInput.Route<I>, MatchInput.Success<I>, MatchInput.Error<I>, MatchInput.Context<I>>;
95
+ <I extends MatchInput.Any>(input: I, f: (a: MatchInput.Success<I>) => boolean): RouteGuard.RouteGuard<MatchInput.Route<I>, MatchInput.Success<I>, MatchInput.Error<I>, MatchInput.Context<I>>;
96
+ };
97
+ /**
98
+ * @since 1.0.0
99
+ */
100
+ export declare const filterMap: {
101
+ <I extends MatchInput.Any, A>(f: (a: MatchInput.Success<I>) => Option.Option<A>): (input: I) => RouteGuard.RouteGuard<MatchInput.Route<I>, A, MatchInput.Error<I>, MatchInput.Context<I>>;
102
+ <I extends MatchInput.Any, A>(input: I, f: (a: MatchInput.Success<I>) => Option.Option<A>): RouteGuard.RouteGuard<MatchInput.Route<I>, A, MatchInput.Error<I>, MatchInput.Context<I>>;
103
+ };
104
+ /**
105
+ * @since 1.0.0
106
+ */
107
+ export declare const flatMap: {
108
+ <I extends MatchInput.Any, A, E2, R2>(guard: Guard<MatchInput.Success<I>, A, E2, R2>): (input: I) => RouteGuard.RouteGuard<MatchInput.Route<I>, A, E2 | MatchInput.Error<I>, R2 | MatchInput.Context<I>>;
109
+ <I extends MatchInput.Any, A, E2, R2>(input: I, guard: Guard<MatchInput.Success<I>, A, E2, R2>): RouteGuard.RouteGuard<MatchInput.Route<I>, A, E2 | MatchInput.Error<I>, R2 | MatchInput.Context<I>>;
110
+ };
111
+ /**
112
+ * @since 1.0.0
113
+ */
114
+ export declare function concat<L extends MatchInput.Any, R extends MatchInput.Any>(left: L, right: R): RouteGuard.RouteGuard<Route.Route.Concat<MatchInput.Route<L>, MatchInput.Route<R>>, MatchInput.Success<L> & MatchInput.Success<R>, MatchInput.Error<L> | MatchInput.Error<R>, MatchInput.Context<L> | MatchInput.Context<R>>;
115
+ /**
116
+ * @since 1.0.0
117
+ */
118
+ export declare function getRoute<I extends MatchInput.Any>(input: I): MatchInput.Route<I>;
119
+ /**
120
+ * @since 1.0.0
121
+ */
122
+ export declare function getSchema<I extends MatchInput.Any>(input: I): MatchInput.Schema<I>;
123
+ /**
124
+ * @since 1.0.0
125
+ */
126
+ export declare function getPathSchema<I extends MatchInput.Any>(input: I): MatchInput.PathSchema<I>;
127
+ /**
128
+ * @since 1.0.0
129
+ */
130
+ export declare function getQuerySchema<I extends MatchInput.Any>(input: I): MatchInput.QuerySchema<I>;
131
+ /**
132
+ * @since 1.0.0
133
+ */
134
+ export declare function getPath<I extends MatchInput.Any>(input: I): MatchInput.Path<I>;
135
+ //# sourceMappingURL=MatchInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatchInput.d.ts","sourceRoot":"","sources":["../../src/MatchInput.ts"],"names":[],"mappings":"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"}
@@ -1,59 +1,120 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import { CurrentEnvironment } from "@typed/environment";
5
4
  import * as Fx from "@typed/fx/Fx";
6
- import * as RefSubject from "@typed/fx/RefSubject";
7
- import * as Guard from "@typed/guard";
8
- import * as Navigation from "@typed/navigation";
9
- import type * as Path from "@typed/path";
10
- import * as Route from "@typed/route";
11
- import type { Scope } from "effect";
5
+ import type * as RefSubject from "@typed/fx/RefSubject";
6
+ import type { Navigation } from "@typed/navigation";
7
+ import { RedirectError } from "@typed/navigation";
8
+ import type * as Route from "@typed/route";
9
+ import * as Effect from "effect/Effect";
10
+ import type * as Scope from "effect/Scope";
12
11
  import type { CurrentRoute } from "./CurrentRoute.js";
12
+ import type { MatchInput } from "./MatchInput.js";
13
+ import * as RouteMatch from "./RouteMatch.js";
13
14
  /**
14
15
  * @since 1.0.0
15
16
  */
16
- export interface RouteMatcher<out A, out E, out R> {
17
- readonly guards: ReadonlyArray<RouteGuard<string, any, A, E, R, E, R>>;
18
- readonly match: {
19
- <const P extends string, B, E2, R2>(route: Route.Route<P> | P, f: (ref: RefSubject.RefSubject<Path.ParamsOf<P>>) => Fx.Fx<B, E2, R2>): RouteMatcher<A | B, E | E2, R | Exclude<R2, Scope.Scope>>;
20
- <const P extends string, B, E2, R2, C, E3, R3>(route: Route.Route<P> | P, guard: Guard.Guard<Path.ParamsOf<P>, B, E2, R2>, f: (ref: RefSubject.RefSubject<B>) => Fx.Fx<C, E3, R3>): RouteMatcher<A | C, E | E2 | E3, R | Exclude<R2, Scope.Scope> | Exclude<R3, Scope.Scope>>;
21
- };
22
- readonly to: {
23
- <const P extends string, B>(route: Route.Route<P> | P, f: (params: Path.ParamsOf<P>) => B): RouteMatcher<A | B, E, R>;
24
- <const P extends string, B, E2, R2, C, E3, R3>(route: Route.Route<P> | P, guard: Guard.Guard<Path.ParamsOf<P>, B, E2, R2>, f: (b: B) => C): RouteMatcher<A | C, E | E2 | E3, R | Exclude<R2, Scope.Scope> | Exclude<R3, Scope.Scope>>;
25
- };
26
- readonly notFound: <B, E2, R2>(f: (destination: typeof Navigation.CurrentEntry) => Fx.Fx<B, E2, R2>) => Fx.Fx<A | B, Exclude<E | E2, Navigation.RedirectError>, Navigation.Navigation | CurrentEnvironment | R | R2 | Scope.Scope>;
27
- readonly redirect: <const P extends string>(route: Route.Route<P> | P, ...params: [keyof Path.ParamsOf<P>] extends [never] ? [{}?] : [Path.ParamsOf<P>]) => Fx.Fx<A, Exclude<E, Navigation.RedirectError>, Navigation.Navigation | CurrentRoute | CurrentEnvironment | R | Scope.Scope>;
17
+ export declare const RouteMatcherTypeId: unique symbol;
18
+ /**
19
+ * @since 1.0.0
20
+ */
21
+ export type RouteMatcherTypeId = typeof RouteMatcherTypeId;
22
+ /**
23
+ * @since 1.0.0
24
+ */
25
+ export interface RouteMatcher<Matches extends RouteMatch.RouteMatch.Any> {
26
+ readonly [RouteMatcherTypeId]: RouteMatcherTypeId;
27
+ readonly matches: ReadonlyArray<Matches>;
28
+ readonly add: <I extends RouteMatch.RouteMatch.Any>(match: I) => RouteMatcher<Matches | I>;
29
+ readonly match: <I extends MatchInput.Any, A, E, R>(input: I, match: (ref: RefSubject.RefSubject<MatchInput.Success<I>>) => Fx.Fx<A, E, R>) => RouteMatcher<Matches | RouteMatch.RouteMatch<MatchInput.Route<I>, MatchInput.Success<I>, MatchInput.Error<I>, MatchInput.Context<I>, A, E, R>>;
30
+ readonly switch: <I extends MatchInput.Any, A, E, R>(input: I, match: (ref: MatchInput.Success<I>) => Fx.Fx<A, E, R>) => RouteMatcher<Matches | RouteMatch.RouteMatch<MatchInput.Route<I>, MatchInput.Success<I>, MatchInput.Error<I>, MatchInput.Context<I>, A, E, R | Scope.Scope>>;
31
+ readonly effect: <I extends MatchInput.Any, A, E, R>(input: I, match: (ref: MatchInput.Success<I>) => Effect.Effect<A, E, R>) => RouteMatcher<Matches | RouteMatch.RouteMatch<MatchInput.Route<I>, MatchInput.Success<I>, MatchInput.Error<I>, MatchInput.Context<I>, A, E, R | Scope.Scope>>;
32
+ readonly to: <I extends MatchInput.Any, B>(input: I, f: (value: MatchInput.Success<I>) => B) => RouteMatcher<Matches | RouteMatch.RouteMatch<MatchInput.Route<I>, MatchInput.Success<I>, MatchInput.Error<I>, MatchInput.Context<I>, B, never, Scope.Scope>>;
28
33
  }
29
34
  /**
30
35
  * @since 1.0.0
31
36
  */
32
- export interface RouteGuard<P extends string, A, O, E = never, R = never, E2 = never, R2 = never> {
33
- readonly route: Route.Route<P>;
34
- readonly guard: Guard.Guard<string, A, E, R>;
35
- readonly match: (ref: RefSubject.RefSubject<A>) => Fx.Fx<O, E2, R2>;
37
+ export declare namespace RouteMatcher {
38
+ /**
39
+ * @since 1.0.0
40
+ */
41
+ type Any = RouteMatcher<RouteMatch.RouteMatch.Any>;
42
+ /**
43
+ * @since 1.0.0
44
+ */
45
+ type Context<T> = T extends RouteMatcher<infer Matches> ? RouteMatch.RouteMatch.Context<Matches> : never;
36
46
  }
37
47
  /**
38
48
  * @since 1.0.0
39
49
  */
40
- export declare function empty(): RouteMatcher<never, never, never>;
50
+ export declare function make<Matches extends RouteMatch.RouteMatch.Any>(matches: ReadonlyArray<Matches>): RouteMatcher<Matches>;
51
+ /**
52
+ * @since 1.0.0
53
+ */
54
+ export declare const empty: RouteMatcher<never>;
55
+ declare const effect: <I extends MatchInput.Any, A, E, R>(input: I, match: (ref: MatchInput.Success<I>) => Effect.Effect<A, E, R>) => RouteMatcher<RouteMatch.RouteMatch<MatchInput.Route<I>, MatchInput.Success<I>, MatchInput.Error<I>, MatchInput.Context<I>, A, E, Scope.Scope | R>>, match: <I extends MatchInput.Any, A, E, R>(input: I, match: (ref: RefSubject.RefSubject<MatchInput.Success<I>, never, never>) => Fx.Fx<A, E, R>) => RouteMatcher<RouteMatch.RouteMatch<MatchInput.Route<I>, MatchInput.Success<I>, MatchInput.Error<I>, MatchInput.Context<I>, A, E, R>>, switch_: <I extends MatchInput.Any, A, E, R>(input: I, match: (ref: MatchInput.Success<I>) => Fx.Fx<A, E, R>) => RouteMatcher<RouteMatch.RouteMatch<MatchInput.Route<I>, MatchInput.Success<I>, MatchInput.Error<I>, MatchInput.Context<I>, A, E, Scope.Scope | R>>, to: <I extends MatchInput.Any, B>(input: I, f: (value: MatchInput.Success<I>) => B) => RouteMatcher<RouteMatch.RouteMatch<MatchInput.Route<I>, MatchInput.Success<I>, MatchInput.Error<I>, MatchInput.Context<I>, B, never, Scope.Scope>>;
56
+ export {
57
+ /**
58
+ * @since 1.0.0
59
+ */
60
+ effect,
61
+ /**
62
+ * @since 1.0.0
63
+ */
64
+ match,
65
+ /**
66
+ * @since 1.0.0
67
+ */
68
+ switch_ as switch,
69
+ /**
70
+ * @since 1.0.0
71
+ */
72
+ to };
41
73
  /**
42
- * @since 1.18.0
74
+ * @since 1.0.0
43
75
  */
44
- export declare const
76
+ export declare const catchRedirectError: <A, E, R>(fx: Fx.Fx<A, E | RedirectError, R>) => Fx.Fx<A, Exclude<E, RedirectError>, R | Scope.Scope | Navigation>;
45
77
  /**
46
78
  * @since 1.0.0
47
79
  */
48
- match: {
49
- <const P extends string, B, E2, R2>(route: P | Route.Route<P>, f: (ref: RefSubject.RefSubject<Path.ParamsOf<P>, never, never>) => Fx.Fx<B, E2, R2>): RouteMatcher<B, E2, Exclude<R2, Scope.Scope>>;
50
- <const P_1 extends string, B_1, E2_1, R2_1, C, E3, R3>(route: P_1 | Route.Route<P_1>, guard: Guard.Guard<Path.ParamsOf<P_1>, B_1, E2_1, R2_1>, f: (ref: RefSubject.RefSubject<B_1, never, never>) => Fx.Fx<C, E3, R3>): RouteMatcher<C, E2_1 | E3, Exclude<R2_1, Scope.Scope> | Exclude<R3, Scope.Scope>>;
51
- },
80
+ export declare const notFound: {
81
+ <A, E, R>(onNotFound: Fx.Fx<A, E, R>): <Matches extends RouteMatch.RouteMatch.Any>(router: RouteMatcher<Matches>) => Fx.Fx<A | RouteMatch.RouteMatch.Success<Matches>, Exclude<E | RouteMatch.RouteMatch.Error<Matches>, RedirectError>, Scope.Scope | Navigation | R | RouteMatch.RouteMatch.Context<Matches>>;
82
+ <Matches extends RouteMatch.RouteMatch.Any, A, E, R>(router: RouteMatcher<Matches>, onNotFound: Fx.Fx<A, E, R>): Fx.Fx<A | RouteMatch.RouteMatch.Success<Matches>, Exclude<E | RouteMatch.RouteMatch.Error<Matches>, RedirectError>, Scope.Scope | Navigation | R | RouteMatch.RouteMatch.Context<Matches>>;
83
+ };
52
84
  /**
53
85
  * @since 1.0.0
54
86
  */
55
- to: {
56
- <const P extends string, B>(route: P | Route.Route<P>, f: (params: Path.ParamsOf<P>) => B): RouteMatcher<B, never, never>;
57
- <const P_1 extends string, B_1, E2, R2, C, E3, R3>(route: P_1 | Route.Route<P_1>, guard: Guard.Guard<Path.ParamsOf<P_1>, B_1, E2, R2>, f: (b: B_1) => C): RouteMatcher<C, E2 | E3, Exclude<R2, Scope.Scope> | Exclude<R3, Scope.Scope>>;
87
+ export declare const notFoundWith: {
88
+ <A, E, R>(onNotFound: Effect.Effect<A, E, R>): <Matches extends RouteMatch.RouteMatch.Any>(router: RouteMatcher<Matches>) => Fx.Fx<A | RouteMatch.RouteMatch.Success<Matches>, Exclude<E | RouteMatch.RouteMatch.Error<Matches>, RedirectError>, R | Navigation | RouteMatch.RouteMatch.Context<Matches> | Scope.Scope>;
89
+ <Matches extends RouteMatch.RouteMatch.Any, A, E, R>(router: RouteMatcher<Matches>, onNotFound: Effect.Effect<A, E, R>): Fx.Fx<A | RouteMatch.RouteMatch.Success<Matches>, Exclude<E | RouteMatch.RouteMatch.Error<Matches>, RedirectError>, R | Navigation | RouteMatch.RouteMatch.Context<Matches> | Scope.Scope>;
58
90
  };
91
+ /**
92
+ * @since 1.0.0
93
+ */
94
+ export declare function isRouteMatcher<M extends RouteMatch.RouteMatch.Any = RouteMatch.RouteMatch.Any>(value: unknown): value is RouteMatcher<M>;
95
+ /**
96
+ * @since 1.0.0
97
+ */
98
+ export declare const redirectWith: {
99
+ <E, R>(effect: Effect.Effect<string, E, R>): <Matches extends RouteMatch.RouteMatch.Any>(router: RouteMatcher<Matches>) => Fx.Fx<RouteMatch.RouteMatch.Success<Matches>, Exclude<E | RouteMatch.RouteMatch.Error<Matches>, RedirectError>, Navigation | Scope.Scope | R | RouteMatch.RouteMatch.Context<Matches>>;
100
+ <Matches extends RouteMatch.RouteMatch.Any, E, R>(router: RouteMatcher<Matches>, effect: Effect.Effect<string, E, R>): Fx.Fx<RouteMatch.RouteMatch.Success<Matches>, Exclude<E | RouteMatch.RouteMatch.Error<Matches>, RedirectError>, Navigation | Scope.Scope | R | RouteMatch.RouteMatch.Context<Matches>>;
101
+ };
102
+ /**
103
+ * @since 1.0.0
104
+ */
105
+ export declare const redirectTo: {
106
+ <R extends Route.Route.Any>(route: R, ...params: Route.Route.ParamsList<R>): <Matches extends RouteMatch.RouteMatch.Any>(router: RouteMatcher<Matches>) => Fx.Fx<RouteMatch.RouteMatch.Success<Matches>, RedirectRouteMatchError<R> | Exclude<RouteMatch.RouteMatch.Error<Matches>, RedirectError>, Scope.Scope | Navigation | CurrentRoute | RouteMatch.RouteMatch.Context<Matches>>;
107
+ <Matches extends RouteMatch.RouteMatch.Any, R extends Route.Route.Any>(router: RouteMatcher<Matches>, route: R, ...params: Route.Route.ParamsList<R>): Fx.Fx<RouteMatch.RouteMatch.Success<Matches>, RedirectRouteMatchError<R> | Exclude<RouteMatch.RouteMatch.Error<Matches>, RedirectError>, Scope.Scope | Navigation | CurrentRoute | RouteMatch.RouteMatch.Context<Matches>>;
108
+ };
109
+ declare const RedirectRouteMatchError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
110
+ readonly _tag: "RedirectRouteMatchError";
111
+ } & Readonly<A>;
112
+ /**
113
+ * @since 1.0.0
114
+ */
115
+ export declare class RedirectRouteMatchError<R extends Route.Route.Any> extends RedirectRouteMatchError_base {
116
+ readonly route: R;
117
+ readonly params: Route.Route.Params<R>;
118
+ constructor(route: R, params: Route.Route.Params<R>);
119
+ }
59
120
  //# sourceMappingURL=Matcher.d.ts.map